var serverpath;
serverpath = "http://www.refinancemortgagerates.org/idx/";
var domain_name;
domain_name = '';

var d=document
jsSrc = params;
var jsQry = jsSrc.substr(jsSrc.indexOf("?"));

var arr1=new Array();
arr1=jsQry.split("?");

new Date().getTime();
var timestamp = Number(new Date());

var wdiv;
wdiv = 'widgetdiv'+timestamp;


var fileone_appended = true;

function utf8_encode ( argString ) {
    
    var string = (argString+''); // .replace(/\r\n/g, "\n").replace(/\r/g, "\n");

    var utftext = "";
    var start, end;
    var stringl = 0;

    start = end = 0;
    stringl = string.length;
    for (var n = 0; n < stringl; n++) {
        var c1 = string.charCodeAt(n);
        var enc = null;

        if (c1 < 128) {
            end++;
        } else if (c1 > 127 && c1 < 2048) {
            enc = String.fromCharCode((c1 >> 6) | 192) + String.fromCharCode((c1 & 63) | 128);
        } else {
            enc = String.fromCharCode((c1 >> 12) | 224) + String.fromCharCode(((c1 >> 6) & 63) | 128) + String.fromCharCode((c1 & 63) | 128);
        }
        if (enc !== null) {
            if (end > start) {
                utftext += string.substring(start, end);
            }
            utftext += enc;
            start = end = n+1;
        }
    }

    if (end > start) {
        utftext += string.substring(start, string.length);
    }

    return utftext;
}


function base64_encode (data) {

    var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, ac = 0, enc="", tmp_arr = [];

    if (!data) {
        return data;
    }

    data = this.utf8_encode(data+'');
    
    do { // pack three octets into four hexets
        o1 = data.charCodeAt(i++);
        o2 = data.charCodeAt(i++);
        o3 = data.charCodeAt(i++);

        bits = o1<<16 | o2<<8 | o3;

        h1 = bits>>18 & 0x3f;
        h2 = bits>>12 & 0x3f;
        h3 = bits>>6 & 0x3f;
        h4 = bits & 0x3f;

        // use hexets to index into b64, and append result to encoded string
        tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
    } while (i < data.length);
    
    enc = tmp_arr.join('');
    
    switch (data.length % 3) {
        case 1:
            enc = enc.slice(0, -2) + '==';
        break;
        case 2:
            enc = enc.slice(0, -1) + '=';
        break;
    }

    return enc;
}



function base64_decode (data) {
    var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, ac = 0, dec = "", tmp_arr = [];

    if (!data) {
        return data;
    }

    data += '';

    do {  // unpack four hexets into three octets using index points in b64
        h1 = b64.indexOf(data.charAt(i++));
        h2 = b64.indexOf(data.charAt(i++));
        h3 = b64.indexOf(data.charAt(i++));
        h4 = b64.indexOf(data.charAt(i++));

        bits = h1<<18 | h2<<12 | h3<<6 | h4;

        o1 = bits>>16 & 0xff;
        o2 = bits>>8 & 0xff;
        o3 = bits & 0xff;

        if (h3 == 64) {
            tmp_arr[ac++] = String.fromCharCode(o1);
        } else if (h4 == 64) {
            tmp_arr[ac++] = String.fromCharCode(o1, o2);
        } else {
            tmp_arr[ac++] = String.fromCharCode(o1, o2, o3);
        }
    } while (i < data.length);

    dec = tmp_arr.join('');
    dec = this.utf8_decode(dec);

    return dec;
}



function AppendJS()
{
	var h=d.getElementsByTagName('head')[0];
	if(window.fileone_appended)
	{}
	else
	{
		var jquery_urll = serverpath+domain_name+'js/base64_encode.js';
		jqq=d.createElement('script');
		jqq.setAttribute('src',jquery_urll);
		h.appendChild(jqq);
	}
	
	if(window.filetwoappended)
	{flag = 2;}
	else
	{
		var jquery_url = serverpath+domain_name+'js/jquery.js';
		
		jq=d.createElement('script');
		
		jq.setAttribute('src',jquery_url);
		
		h.appendChild(jq);
		flag = 1;
	}
}

function AppendDIV(divid)
{
	var css_bg_color = '<div style="width:100%; float:left;" id="'+divid+'"></div>';
	document.write(css_bg_color);
	
	if(flag == 1)
	{
		setTimeout('getData(\''+divid+'\', \''+arr1+'\')', 2500);
	}
	else
	{
		getData(divid, arr1);
	}
}


function getData(divid, str)
{
	var params;
	var tempstr = str;
	
	str = str+'&widgetdivid='+divid+'&tempstr='+base64_encode(tempstr);
	
	params = base64_encode(str);
	$.getJSON(serverpath+domain_name+"widget/calcuate_response.php?params="+params+"&format=json&jsoncallback=?",
		function(data){

		  var mycars = new Array();
		  mycars = data.split("-SEPARATOR-");
		
		  processData(mycars[1], mycars[0]);
		  /*
		  if(document.getElementById(divid).style.display != "none")
		  {
			  setTimeout('getData(\''+divid+'\', \''+tempstr+'\')', 10000);
		  }*/
	});
}

function processData(divid, widgetdata)
{
	if(document.getElementById(divid).style.display != "none")
	{
		$('#'+divid).fadeOut();
		$('#'+divid).html(widgetdata); // this code works for all browsers while the belove code do not work for IE7
		//document.getElementById(divid).innerHTML = widgetdata;
		document.getElementById('footer_mortgage').style.display ="block";
		$('#'+divid).fadeIn('slow');
	}
}

AppendJS();
AppendDIV(wdiv);
