var sBaseUrl = "http://www.smartstore.com/services/partner/SmartStore.Services.svc/json/";
var iPageSize = 5;

function HasLogo(PartnerID) {

    var result = "";
    var xmlHttp;
    
  	try {xmlHttp=new XMLHttpRequest();}
   	catch (e) {try {xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");}
    catch (e) {try {xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}
    catch (e) {alert("This website only works in browsers with AJAX support"); return false;}}}
 	
 	var url = sBaseUrl + "HasPicture/" + PartnerID;
		
	try
	{
		xmlHttp.open("GET", url, false);
		xmlHttp.setRequestHeader("Content-type","application/json");
		xmlHttp.send("");
		result = eval("(" + xmlHttp.responseText + ")");
		return result;
	} catch (e) {}
}

function getCompanyLogo(partner)
{
	var ReturnLink = '<a href="' + 
		transformURL(partner.Homepage, true) + '" target="new"><img alt="' + 
		partner.Company + '" src="http://www.smartstore.com/services/partner/GetImage.ashx?id=';
	
	if (partner.HasBorder) ReturnLink += partner.PartnerID + '" style="border:none;"></a>';
	else ReturnLink += partner.PartnerID + '" class="companylogo"></a>';
	
	return ReturnLink;
}

function GetPartnersTotal(uri) {

    var result = "";
    var xmlHttp;
    
  	try {xmlHttp=new XMLHttpRequest();}
   	catch (e) {try {xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");}
    catch (e) {try {xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}
    catch (e) {alert("This website only works in browsers with AJAX support"); return false;}}}
 	
	try {
	    
	    var url = sBaseUrl + "Test_GetLength" + uri;
		xmlHttp.open("GET",url,false);
		xmlHttp.setRequestHeader("Content-type","application/json");
		xmlHttp.send("");
		result = eval("(" + xmlHttp.responseText + ")");
	 }
	 catch (e) {}
	 
	 if (result != "") return result;
	 else return 0;
}

function GetServiceTypes() {

    var result = "";
    var xmlHttp;
    
  	try {xmlHttp=new XMLHttpRequest();}
   	catch (e) {try {xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");}
    catch (e) {try {xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}
    catch (e) {alert("This website only works in browsers with AJAX support"); return false;}}}
 	
	try {
	    
	    var url = sBaseUrl + "GetServiceTypes";
		xmlHttp.open("GET",url,false);
		xmlHttp.setRequestHeader("Content-type","application/json");
		xmlHttp.send("");
		result = eval("(" + xmlHttp.responseText + ")");
	 }
	 catch (e) {}

	 if (result != "") return String(result).split(',');
	 else return 0;
}

function GetPartnerTypes() {

    var result = "";
    var xmlHttp;
    
  	try {xmlHttp=new XMLHttpRequest();}
   	catch (e) {try {xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");}
    catch (e) {try {xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}
    catch (e) {alert("This website only works in browsers with AJAX support"); return false;}}}
 	
	try {
	    
	    var url = sBaseUrl + "GetPartnerTypes";
		xmlHttp.open("GET",url,false);
		xmlHttp.setRequestHeader("Content-type","application/json");
		xmlHttp.send("");
		result = eval("(" + xmlHttp.responseText + ")");
	 }
	 catch (e) {}

	 if (result != "") return String(result).split(',');
	 else return 0;
}

function transformURL(url, prefix)
{
	if (prefix) 
	{
	    if (url.substring(0, 7) != "http://") url = "http://" + url;
	}
	else if (url.substring(0, 7) == "http://") url = url.substr(7);
	return url;
}

function ClipText(){
	var args = arguments;
	if(args[0]!=null){
		var sText = args[0].toString();
		if(args[1]!=null){
				var lLength = parseInt(args[1]);
				
				if(sText.length>lLength){
					var arrText = sText.split(" ");
					var iStrLen = 0, i=0;
					sText = "";
					while(iStrLen <= lLength){
						if(sText.length > 0) sText += " ";
						sText += arrText[i];
						iStrLen = sText.length;
						i++;
					};
					if(iStrLen >= lLength * 1.2){
						sText = sText.substring(0, lLength);
						};						
					if(args[2]!=null&&sText!=args[0]){
						var sSuffix = args[2].toString();
						sText += sSuffix;
						};
					};
			};
		return(sText);
		}
	else return("");
};

function Navigation(PageSize, PartnerCount)
{
    var AmountPages = (PartnerCount / PageSize);
    var sNavHtml = '';   
	
    if (AmountPages  > 1)
    {
        if (arrParams[0]["NavIndex"] != 1)
        	sNavHtml += '<a href="" onclick=\'ChangePage(parseInt(arrParams[0]["NavIndex"]) - 1);return false\'><img src="images/active-bullet-back.gif" border="0"></a>';
        else
            sNavHtml += '<span><img src="images/bullet-back.gif" border="0"></span>';
                
        for (var i = 1; i < AmountPages+1; i++ )
        {
            //if Active dann nicht klickbar
            if (parseInt(arrParams[0]["NavIndex"]) == i)
                sNavHtml += '<span class="active-page">' + i + '</span>';
            else 
                sNavHtml += '<span class="inactive-page"><a href="" onclick="ChangePage(' + i + ');return false">' + i + '</a></span>';
        }
        
        if (arrParams[0]["NavIndex"] != parseInt(AmountPages) + 1)
            sNavHtml += '<a href="" onclick=\'ChangePage(parseInt(arrParams[0]["NavIndex"]) + 1);return false\'><img src="images/active-bullet-next.gif" border="0"></a>';
        else
            sNavHtml += '<span><img src="images/bullet-next.gif" border="0"></span>';
    }
    else 
	{
		sNavHtml += "<br />";
	}
	
	/*
	sNavHtml += '<select id="pagesize_selector">';
	sNavHtml += '<option value="5">5</option>';
	sNavHtml += '<option value="10">10</option>';
	sNavHtml += '<option value="20">20</option>';
	sNavHtml += '</select>';
	*/
	
    $("#paging-nav-top").html(sNavHtml);
    $("#paging-nav-bottom").html(sNavHtml);
}

function ChangePage(CurrentPage)
{     
    $(document).ready(function(){
        var iSkip = iPageSize * (CurrentPage - 1);
        var sRequestString = "Test_Partners/" + iSkip + "/5";
        makeCall(sRequestString + sQuery);    
    })
    
    if(arrParams[0]["NavIndex"] != CurrentPage){
        arrParams[0]["NavIndex"] = CurrentPage;
        Navigation(iPageSize, iPartnersTotal);
    }
}

function makeCall(operation){
	
	var xmlHttp;
  	try {xmlHttp=new XMLHttpRequest();}
   	catch (e) {try {xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");}
    catch (e) {try {xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}
    catch (e) {alert("This website only works in browsers with AJAX support"); return false;}}}
 	
	 try {
	 	xmlHttp.onreadystatechange=function(){
	  		if(xmlHttp.readyState==4){
	  			var response = xmlHttp.responseText;
				
	  			try 
	  			{
	  			    var result = eval("(" + response + ")");	
	   			    var strHTML = "";
					var sHtmlSvp = "";
    	   			
                    if (result.length == "0") 
                        strHTML = '<span id="noresult-message">Leider konnten wir mit diesen Kriterien keine entsprechenden Partner ermitteln.</span>';
    	   			else {
					
	   			        strHTML += '<table cellspacing="0" cellpadding="0" border="0" class="partnerlist">';
        	   			
				        for(var i=0;i<result.length;++i){
						
							strHTML += '<tr valign="top" class="';
							if (result[i].Level.substr(0,3) == "SVP") strHTML += 'svp-partner';
							else strHTML += 'partner';
							strHTML += '"><td class="col-logo">';
							
							if (HasLogo(result[i].PartnerID)) strHTML += getCompanyLogo(result[i]);
							strHTML += '</td><td>';
							
							
							strHTML += '<span class="companyname">' + result[i].Company + '</span><br/><br/>';
							
					        strHTML += '<span class="label">Partner-Level: </span><span class="entry">' + result[i].Level + '</span><br/>';
							if (result[i].Profession != "")
						        strHTML += '<span class="label">Dienstleistungen: </span><span class="entry">' + result[i].Profession + '</span><br/>';
							
							strHTML += '<span class="label">Email:  </span><span class="entry"><a href="mailto:' + result[i].Email + '">' + result[i].Email + '</a></span><br/>';
					        strHTML += '<span class="label">URL:  </span><span class="entry"><a href="' + transformURL(result[i].Homepage, true) + '" target="new">' + transformURL(result[i].Homepage, false) + '</a></span><br/>';
							
       						strHTML += '<br/>';
							
							strHTML += '<table cellspacing="0" cellpadding="0" border="0" width="100%"><tr><td class="no-border no-padding">';
							
							strHTML += '<span class="label"><b>Anschrift:</b></span><span class="entry"></span><br/>';
							
					        strHTML += '<span class="entry">' + result[i].Company + '</span><br/>';								
					        var sName = result[i].Salutation;
							if(result[i].Title != "") sName += " " + result[i].Title;
							sName += " " + result[i].Firstname + " " + result[i].Lastname;
							
				        	strHTML += '<span class="entry">' + sName + '</span><br/>';
							
					        strHTML += '<span class="entry">' + result[i].Street + '</span><br/><br/>';
					        strHTML += '<span class="entry">' + result[i].Zipcode + '</span>&nbsp;<span class="entry">' + result[i].City + '</span><br/>';

				    	    strHTML += '<span class="entry">' + result[i].Country + '</span>';
							if (result[i].Region != "")
								strHTML += ', <span class="entry">' + result[i].Region + '</span><br/>';
							
				        	strHTML += '<br/><span class="label">Telefon:  </span><span class="entry">' + result[i].Phone + '</span>';
							
							strHTML += '</td><td style="border:none">';
							
							if (result[i].Level.substr(0,3) == "SVP") 
								strHTML += '<img src="images/svp.png" alt="Smartstore Valuable Partner" border="0"/>';
							
							strHTML += '</td></tr>';
							
							strHTML += '<tr><td colspan="2" class="no-border padding-top">';
							
							if (result[i].Desc != "") {
								if (result[i].Level.substr(0,3) == "SVP"){
									/*
									strHTML += '<p class="svp-partner-desc">' + result[i].Desc + '</p>';
									strHTML += '<p class="svp-partner-long-desc" style="display:none">' + result[i].Desc + '</p>';
									*/
									if(result[i].Desc.length > 250)
									{
										strHTML += '<div title="' + result[i].Desc + '" id="svp-partner-desc-' + i + 
											'">' + ClipText(result[i].Desc, 250) + '...<a href="javascript:void(0)" onclick="$(\'#svp-partner-long-desc-' + i + 
											'\').show();$(\'#svp-partner-desc-' + i + 
											'\').hide();" style="text-decoration:none"> mehr...</a></div>';
										
										strHTML += '<div title="' + result[i].Desc + '" style="display:none" id="svp-partner-long-desc-' + i + 
											'">' + result[i].Desc + '</div>';
									}
									else
									{
										strHTML += '<div title="' + result[i].Desc + '" id="svp-partner-long-desc-' + i + 
											'">' + result[i].Desc + '</div>';
									}
								}
								else {
									if(result[i].Desc.length > 250)
									{
										strHTML += '<div title="' + result[i].Desc + '" id="partner-desc-' + i +
											'">' + ClipText(result[i].Desc, 250) + '...<a href="javascript:void(0)" onclick="$(\'#partner-long-desc-' + i + 
											'\').show();$(\'#partner-desc-' + i + 
											'\').hide();" style="text-decoration:none"> mehr...</a></div>';
										
										strHTML += '<div title="' + result[i].Desc + '" style="display:none" id="partner-long-desc-' + i + 
											'">' + result[i].Desc + '</div>';
									}
									else 
									{
										strHTML += '<div title="' + result[i].Desc + '" id="partner-long-desc-' + i + 
											'">' + result[i].Desc + '</div>';
									}
								}
							}
								
					        strHTML += '</td></tr>';	
							
							strHTML += '</table>';
							
					        strHTML += '</td></tr>';								
   				        }
				        strHTML += "</table>";

				    }
				    document.getElementById("parters").innerHTML = strHTML;
				}
	  			catch (e){}
	   		}
		}
		
		var url = sBaseUrl + operation;
		
		xmlHttp.open("GET",url,true);
		xmlHttp.setRequestHeader("Content-type","application/json");
		xmlHttp.send("");
	
	} catch(e) {}
}

function BuildQuery(arrParams)
{
	var sQuery = "?";
		
	for (var param in arrParams[0]){
		
		if(arrParams[0][param].length == "0")
			continue;
			//return sQuery;
		
		else
		//if(arrParams[0][param].length != "1")
			sQuery += "&";
		
		sQuery += param;
		sQuery += "=";
		sQuery += arrParams[0][param];
		
	}
	return sQuery;
}
