/****************************************************************************************/
/***************************    Cookie      ******************************************/
/****************************************************************************************/

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function getCookie(c_name)
{
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++)
{
  x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
  y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
  x=x.replace(/^\s+|\s+$/g,"");
  if (x==c_name)
    {
    return unescape(y);
    }
  }
}


/****************************************************************************************/
/***************************    Index.php      ******************************************/
/****************************************************************************************/
function countryOnChange(){
	var oCountry = document.getElementById('header-country');

    eraseCookie('session-country');
    createCookie('session-country',oCountry.value,1);
	window.location.reload(true);
}

function setCountry(pCountry){
    eraseCookie('session-country');
    createCookie('session-country',pCountry,1);
	window.location.reload(true);	
}

/****************************************************************************************/
/***************************    Search Box    ******************************************/
/****************************************************************************************/
function keyword_focus(){
	var oKeyword = document.getElementById('search_keyword');
	
	oKeyword.value = "";
}

function keyword_blur(){
	var oKeyword = document.getElementById('search_keyword');
	
	if (oKeyword.value==""){
		oKeyword.value = "Keyword";	
	}
}

function validateSearchBox(){
	var oKeyword = document.getElementById('search_keyword');
	
	if (oKeyword.value == "Keyword"){
		alert('Please enter the Keyword.');
		oKeyword.focus();
		return false;
	}
	return true;
	
}
/****************************************************************************************/
/***************************    Post.php    ******************************************/
/****************************************************************************************/
function Check_Valid_String(str,other_valid_char,num_valid,char_valid){
        if(str=="")
	        return false;
        var valid_char="";
        if(num_valid!="false")
	        valid_char+="0123456789";
        if(char_valid!="false")
            valid_char+="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
	    if(other_valid_char)
            valid_char+=other_valid_char;
		if(Check_String(str,valid_char))
            return true;
        else
            return false;
}

function Check_String(str,valid_char){
        if(!valid_char)
                var valid_char="0123456789abcdefghijklmnopqrstuvwxyz.@-_ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        for(i=0;i<str.length;i++){
           if(valid_char.indexOf(str.charAt(i))==-1)
              return false;
        }
        return true;
}

function IsEmail(str){
        if(str=="")
                return false;
        if(str.indexOf('@')<=0 || str.indexOf('@')>=(str.length-1))
                return false;
        if(str.indexOf('.')<=0 || str.charAt(str.length-1)=='.' || str.charAt(str.length-2)=='.')
                return false;
        if(str.length<6)
                return false;
        if(Check_String(str)==false)
                return false;
        var flag1=0;
        var flag2=0;
        for(i=0;i<str.length;i++){
        	if(str.charAt(i)=='.' && flag1==1)
            	return false;
            if(str.charAt(i)=='@' || str.charAt(i)=='.')
                flag1=1;
            else
               	flag1=0;

			if(str.charAt(i)=='@')
            	flag2++;
        }
        if(flag2!=1)
                return false;
        return true;
}

function showLocation(i){
	var o=document.getElementById("div_loc_"+i);
	var p=document.getElementById("pre-country");
	var q=document.getElementById("country");
	
	// Clear Location
	if (p.value){
	  var x=document.getElementById("div_loc_"+p.value);
	  x.style.display='none';
	}
	
	// Display Location
	if( o ){
	   o.style.display="block";
	}else o=null;
	
	p.value=q.value;
}

function showSubCat(i){
	var o=document.getElementById("div_cat_"+i);
	var p=document.getElementById("pre-cat");
	var q=document.getElementById("cat");
	
	// Clear Location
	if (p.value){
	  var x=document.getElementById("div_cat_"+p.value);
	  x.style.display='none';
	}
	
	// Display Location
	if( o ){
	   o.style.display="inline";
	}else o=null;
	
	p.value=q.value;
}
  
function Select_Value_Set(SelectName, Value) {
  eval('SelectObject = document.' + SelectName + ';');
  
  for(index = 0; index < SelectObject.length; index++) {  
   if(SelectObject[index].value == Value)
     SelectObject.selectedIndex = index;
  }
}


function validationCheck(){
  var oCat = document.getElementById('cat');
  var oSubCat = document.getElementById('cat_'+oCat.value);
  var oPostType = document.getElementById('post_type');
  var oTitle = document.getElementById('ptitle');
 // var oContent = document.getElementById('elm1');
  var oPrice = document.getElementById('pprice');	
  var oCountry = document.getElementById('country');	
  var oLoc = document.getElementById('plocation');	
  var oContactPerson = document.getElementById('pcontactperson');	
  var oContactNo = document.getElementById('pcontactno');	
  var oEmail = document.getElementById('pemail');
  var oPassword = document.getElementById('ppassword');  
  
  if (oCat.value==""){
	  alert('Please select the Categories.');
	  oCat.focus();
	  return false;
  }else{
	  if (oSubCat.value==""){
		  alert('Please select the Sub-Categories.');
		  oSubCat.focus();
		  return false;
	  }
  }  
  if (oPostType.value==""){ 
      alert('Please select Post Type.');
	  oPostType.focus();
	  return false; 
  }
  if (oTitle.value==""){
	  alert('Please enter the Title.');
	  oTitle.select();
	  return false;
  }
  /*
  if (oContent.value==""){
	  alert('Please enter the Content.');
	  oContent.select();
	  return false;
  }
  */
  if (oPrice.value==""){
  	  oPrice.value = "0";
  }
  if (oCountry.value==""){
	  alert('Please select the Country.');
	  oCountry.focus();
	  return false;
  }

  if (oLoc.value=="city & state or zip"){
	  alert('Please select the Location.');
	  oLoc.focus();
	  return false;
  }
  if (oLoc.value==""){
	  alert('Please select the Location.');
	  oLoc.focus();
	  return false;
  }

  if (oContactPerson.value==""){
	  alert('Please enter the Contact Person.');
	  oContactPerson.select();
	  return false;
  }
  if(oContactNo.value==""){
	  alert('Please enter the Contact No.');
	  oContactNo.select();
	  return false;
  }
  if(!Check_Valid_String(oContactNo.value,"-","true","false")){
      alert('Invalid Contact No.');
      return false;
  }  
  if (oEmail.value==""){
	  alert('Please enter the Email.');
	  oEmail.select();
	  return false;
  }else{
  	  if (!IsEmail(oEmail.value)){
	  	  alert('Email address is invalid');
		  oEmail.select();
		  return false;
	  }
  }
  if(oPassword.value==""){
	  alert('Please enter the Password.');
	  oPassword.select();
	  return false;
  }  
  return true;
}

function location_focus(){
	var oLocation = document.getElementById('plocation');
	
	if (oLocation.value == "city & state or zip"){
		oLocation.value = "";
	}
}
function location_blur(){
	var oLocation = document.getElementById('plocation');
	
	if (oLocation.value == ""){
		oLocation.value = "city & state or zip";
	}
}
/****************************************************************************************/
/***************************    Banner         ******************************************/
/****************************************************************************************/

function validationCheckBanner(){
  var oUrl = document.getElementById('banner_url');
  var oFile = document.getElementById('banner_file');
  var oEmail = document.getElementById('banner_email');
  
  if (oUrl.value ==""){
	  alert('Please enter the Banner URL.');
	  oUrl.focus();
	  return false;
  }   

  if (oFile.value ==""){
	  alert('Please upload the Banner Image.');
	  oFile.focus();
	  return false;
  }
 
  if (oEmail.value==""){
	  alert('Please enter the Email.');
	  oEmail.select();
	  return false;
  }else{
  	  if (!IsEmail(oEmail.value)){
	  	  alert('Email address is invalid');
		  oEmail.select();
		  return false;
	  }
  }
  return true;
}


/****************************************************************************************/
/***************************    Send comment   ******************************************/
/****************************************************************************************/
function validationComment(pi_id){
  	var oName = document.getElementById('cmt_name');
  	var oEmail = document.getElementById('cmt_email');
  	var oComment = document.getElementById('cmt_comment');	
	var oScode = document.getElementById('cmt_scode');
	var oTotal = document.getElementById('cmt_total');

	if (oName.value==""){
		alert('Please enter the Name.');
		oName.focus();
		return false;
	}
	
	if (oEmail.value==""){
		alert('Please enter the Email.');
		oEmail.focus();
		return false;
  	}else{
  		if (!IsEmail(oEmail.value)){
	  		alert('Email address is invalid.');
		  	oEmail.select();
		  	return false;
	  	}
  	}
  
	if (oComment.value==""){
		alert('Please enter the Comment / Question.');
		oComment.focus();
		return false;
	}
	
	if(MD5(oScode.value)+'axyp' != readCookie('scode'+pi_id)){
	  alert('Invalid security code.');
	  oScode.focus();
	  return false;
	}

	var d=new Date();
    var day = d.getDate();
    var month = d.getMonth()+1;
    var year = d.getFullYear();
	var date = pad(year,2) + '-' + pad(month,2) + '-' +  pad(day,2);
    var name = oName.value;
	var comment = oComment.value;
	var email = oEmail.value;
	var dataString = 'id='+ pi_id + '&name=' + oName.value + '&email=' + oEmail.value + '&comment=' + oComment.value;		

	$.ajax({
		type: "POST",
		url: "savecomment.php",
		data: dataString,
		success: function() {
		  // create a new div element, add it to queue and animate
		  var element = $('<div class="comment-list-wrapper-white"><div class="comment-list-content-name"><div class="comment-list-name">'+ name +'</div><div class="clear"></div><div class="comment-list-date">'+ date +'</div></div><div class="comment-list-content-desc"><div class="comment-list-desc">'+ comment +'</div></div><div class="clear"></div><div class=\"comment-list-reply\"></div></div>');
		  element.prependTo("#appendcmt").slideDown();	   
		}
	});
	  
	oName.value = "";
	oEmail.value = "";
	oComment.value = "";
	oScode.value = "";
  	return false;
}

//function resetComment(pname,pemail){
function resetComment(){
  	var oName = document.getElementById('cmt_name');
  	var oEmail = document.getElementById('cmt_email');
  	var oComment = document.getElementById('cmt_comment');	
	//var oNameTo = document.getElementById('cmt_nameto');
	//var oEmailTo = document.getElementById('cmt_emailto');
	var oScode = document.getElementById('cmt_scode');
	//oNameTo.value = pname;
	//oEmailTo.value = pemail;
	
	oName.value = "";
	oEmail.value = "";
	oComment.value = "";
	oScode.value = "";
	oName.style.backgroundColor="#FFFF93";
	oName.focus();
	
	return false;
}

function replyComment(pname,pemail){
  	var oName = document.getElementById('cmt_name');
	var oBtnCmtSend = document.getElementById('btn_cmt_send');
	var oNameTo = document.getElementById('cmt_nameto');
	var oEmailTo = document.getElementById('cmt_emailto');
	oNameTo.value = pname;
	oEmailTo.value = pemail;
	oBtnCmtSend.focus();
    oName.style.backgroundColor="#FFFF93";
	oName.focus();
}

function cmtNameOnblur(){
  	var oName = document.getElementById('cmt_name');
    oName.style.backgroundColor="white";	
}
function sendComment(pi_id){
	var oName = document.getElementById('cmt_name'+pi_id);
  	var oEmail = document.getElementById('cmt_email'+pi_id);
  	var oComment = document.getElementById('cmt_comment'+pi_id);	
	var oScode = document.getElementById('cmt_scode'+pi_id);
	var oTotal = document.getElementById('cmt_total'+pi_id);

//alert(MD5(oScode.value)+'='+readCookie('scode'+pi_id));
//return false;
	if (oName.value==""){
		alert('Please enter the Name.');
		oName.focus();
		return false;
	}
	
	if (oEmail.value==""){
		alert('Please enter the Email.');
		oEmail.focus();
		return false;
  	}else{
  		if (!IsEmail(oEmail.value)){
	  		alert('Email address is invalid.');
		  	oEmail.select();
		  	return false;
	  	}
  	}
  
	if (oComment.value==""){
		alert('Please enter the Comment / Enquiry.');
		oComment.focus();
		return false;
	}
	
	if(MD5(oScode.value)+'axyp' != readCookie('scode'+pi_id)){
	  alert('Invalid security code.');
	  oScode.focus();
	  return false;
	}

	var d=new Date();
    var day = d.getDate();
    var month = d.getMonth()+1;
    var year = d.getFullYear();
	var date = pad(year,2) + '-' + pad(month,2) + '-' +  pad(day,2);
    var name = oName.value;
	var comment = oComment.value;
	
	if (pi_id.substr(0,5) == "_top_"){
	  var dataString = 'id='+ pi_id.substr(5) + '&name=' + oName.value + '&email=' + oEmail.value + '&comment=' + oComment.value;
	}else{
	  var dataString = 'id='+ pi_id + '&name=' + oName.value + '&email=' + oEmail.value + '&comment=' + oComment.value;		
	}

	  
	$.ajax({
		type: "POST",
		url: "savecomment.php",
		data: dataString,
		success: function() {
		  // create a new div element, add it to queue and animate
		  var element = $('<div class="usercomment"><table cellpadding="0" cellspacing="0" border="0" width="450px"><tr><td style="background:url(img/user.png) no-repeat 0px 0px; padding-left:20px; padding-right:20px; width:200px;">' + name + '</td><td style="background:url(img/calendar_icon.png) no-repeat 0px 0px;margin-left:10px; padding-left:20px;">' + date + '</td></tr><tr><td colspan=6 style="line-height:15px;padding-top:5px;padding-bottom:10px;">' + comment + '</td></tr></table></div>');
		  element.prependTo("#appendcmt"+pi_id).slideDown();	   
		}
	});
	  
	
	oName.value = "";
	oEmail.value = "";
	oComment.value = "";
	oScode.value = "";
	return false;
}

function clearComment(pi_id){
  	var oName = document.getElementById('cmt_name'+pi_id);
  	var oEmail = document.getElementById('cmt_email'+pi_id);
  	var oComment = document.getElementById('cmt_comment'+pi_id);	
	var oScode = document.getElementById('cmt_scode'+pi_id);

	oName.value = "";
	oEmail.value = "";
	oComment.value = "";
    oScode.value = "";
	oName.focus();

	return false;
}

function checksecuritycode(){
    alert(1);
	$.facebox.close(); 
	//jQuery(document).trigger('close.facebox') 
	return false;
}

function validateComment(){
	var oName = document.getElementById('cmtname');
  	var oEmail = document.getElementById('cmtemail');
  	var oComment = document.getElementById('cmttext');	
	
	if (oName.value==""){
		alert('Please enter the Name.');
		oName.focus();
		return false;
	}
	
	if (oEmail.value==""){
		alert('Please enter the Email.');
		oEmail.focus();
		return false;
  	}else{
  		if (!IsEmail(oEmail.value)){
	  		alert('Email address is invalid.');
		  	oEmail.select();
		  	return false;
	  	}
  	}
  
	if (oComment.value==""){
		alert('Please enter the Comment / Enquiry.');
		oComment.focus();
		return false;
	}
}
/****************************************************************************************/
/***************************    Listing.php    ******************************************/
/****************************************************************************************/
function validationFeedback(){
  	var oEmail = document.getElementById('feedback_email');
  	var oContent = document.getElementById('feedback_content');	
	
	if (oEmail.value==""){
		alert('Please enter the Email.');
		oEmail.focus();
		return false;
  	}else{
  		if (!IsEmail(oEmail.value)){
	  		alert('Email address is invalid.');
		  	oEmail.select();
		  	return false;
	  	}
  	}
  
	if (oContent.value==""){
		alert('Please enter the Content.');
		oContent.focus();
		return false;
	}
  	return true;
}

function resetFeedback(){
  	var oEmail = document.getElementById('feedback_email');
  	var oContent = document.getElementById('feedback_content');	

	oEmail.value = "";
	oContent.value = "";
	
	oEmail.focus();
	
	return false;
}

function validationTofriend(){
  	var oName = document.getElementById('sender_name');
  	var oEmail = document.getElementById('receiver_email');	
	
	if (oName.value==""){
		alert('Please enter your name.');
		oName.focus();
		return false;
	}
  
	if (oEmail.value==""){
		alert('Please enter the Recipient Email.');
		oEmail.focus();
		return false;
  	}else{
  		if (!IsEmail(oEmail.value)){
	  		alert('Email address is invalid.');
		  	oEmail.select();
		  	return false;
	  	}
  	}
	
  	return true;
}

function resetTofriend(){
  	var oName = document.getElementById('sender_name');
  	var oEmail = document.getElementById('receiver_email');	

	oName.value = "";
	oEmail.value = "";
	
	oName.focus();
	
	return false;
}

/*********************************************************/
/******************* Bookmark ****************************/
/*********************************************************/


 function CreateBookmarkLink(url) {
	 title = "Green Paper Classified"; 

	if (window.sidebar) { // Mozilla Firefox Bookmark
		window.sidebar.addPanel(title, url,"");
	} else if( window.external ) { // IE Favorite
		window.external.AddFavorite( url, title); }
	else if(window.opera && window.print) { // Opera Hotlist
		return true; }
 }

function toggle(id) {
 if( document.getElementById(id).style.display=='none' ){
   document.getElementById(id).style.display = '';
 }else{
   document.getElementById(id).style.display = 'none';
 }
}


function pad(number, length) {
    var str = '' + number;
    while (str.length < length) {
        str = '0' + str;
    }
    return str;
}



/*********************************************************/
/******************* MD5 ****************************/
/*********************************************************/

/**
*
*  MD5 (Message-Digest Algorithm)
*  http://www.webtoolkit.info/
*
**/
 
var MD5 = function (string) {
 
	function RotateLeft(lValue, iShiftBits) {
		return (lValue<<iShiftBits) | (lValue>>>(32-iShiftBits));
	}
 
	function AddUnsigned(lX,lY) {
		var lX4,lY4,lX8,lY8,lResult;
		lX8 = (lX & 0x80000000);
		lY8 = (lY & 0x80000000);
		lX4 = (lX & 0x40000000);
		lY4 = (lY & 0x40000000);
		lResult = (lX & 0x3FFFFFFF)+(lY & 0x3FFFFFFF);
		if (lX4 & lY4) {
			return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
		}
		if (lX4 | lY4) {
			if (lResult & 0x40000000) {
				return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
			} else {
				return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
			}
		} else {
			return (lResult ^ lX8 ^ lY8);
		}
 	}
 
 	function F(x,y,z) { return (x & y) | ((~x) & z); }
 	function G(x,y,z) { return (x & z) | (y & (~z)); }
 	function H(x,y,z) { return (x ^ y ^ z); }
	function I(x,y,z) { return (y ^ (x | (~z))); }
 
	function FF(a,b,c,d,x,s,ac) {
		a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
		return AddUnsigned(RotateLeft(a, s), b);
	};
 
	function GG(a,b,c,d,x,s,ac) {
		a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
		return AddUnsigned(RotateLeft(a, s), b);
	};
 
	function HH(a,b,c,d,x,s,ac) {
		a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
		return AddUnsigned(RotateLeft(a, s), b);
	};
 
	function II(a,b,c,d,x,s,ac) {
		a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));
		return AddUnsigned(RotateLeft(a, s), b);
	};
 
	function ConvertToWordArray(string) {
		var lWordCount;
		var lMessageLength = string.length;
		var lNumberOfWords_temp1=lMessageLength + 8;
		var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1 % 64))/64;
		var lNumberOfWords = (lNumberOfWords_temp2+1)*16;
		var lWordArray=Array(lNumberOfWords-1);
		var lBytePosition = 0;
		var lByteCount = 0;
		while ( lByteCount < lMessageLength ) {
			lWordCount = (lByteCount-(lByteCount % 4))/4;
			lBytePosition = (lByteCount % 4)*8;
			lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount)<<lBytePosition));
			lByteCount++;
		}
		lWordCount = (lByteCount-(lByteCount % 4))/4;
		lBytePosition = (lByteCount % 4)*8;
		lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80<<lBytePosition);
		lWordArray[lNumberOfWords-2] = lMessageLength<<3;
		lWordArray[lNumberOfWords-1] = lMessageLength>>>29;
		return lWordArray;
	};
 
	function WordToHex(lValue) {
		var WordToHexValue="",WordToHexValue_temp="",lByte,lCount;
		for (lCount = 0;lCount<=3;lCount++) {
			lByte = (lValue>>>(lCount*8)) & 255;
			WordToHexValue_temp = "0" + lByte.toString(16);
			WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2);
		}
		return WordToHexValue;
	};
 
	function Utf8Encode(string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";
 
		for (var n = 0; n < string.length; n++) {
 
			var c = string.charCodeAt(n);
 
			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}
 
		}
 
		return utftext;
	};
 
	var x=Array();
	var k,AA,BB,CC,DD,a,b,c,d;
	var S11=7, S12=12, S13=17, S14=22;
	var S21=5, S22=9 , S23=14, S24=20;
	var S31=4, S32=11, S33=16, S34=23;
	var S41=6, S42=10, S43=15, S44=21;
 
	string = Utf8Encode(string);
 
	x = ConvertToWordArray(string);
 
	a = 0x67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0x10325476;
 
	for (k=0;k<x.length;k+=16) {
		AA=a; BB=b; CC=c; DD=d;
		a=FF(a,b,c,d,x[k+0], S11,0xD76AA478);
		d=FF(d,a,b,c,x[k+1], S12,0xE8C7B756);
		c=FF(c,d,a,b,x[k+2], S13,0x242070DB);
		b=FF(b,c,d,a,x[k+3], S14,0xC1BDCEEE);
		a=FF(a,b,c,d,x[k+4], S11,0xF57C0FAF);
		d=FF(d,a,b,c,x[k+5], S12,0x4787C62A);
		c=FF(c,d,a,b,x[k+6], S13,0xA8304613);
		b=FF(b,c,d,a,x[k+7], S14,0xFD469501);
		a=FF(a,b,c,d,x[k+8], S11,0x698098D8);
		d=FF(d,a,b,c,x[k+9], S12,0x8B44F7AF);
		c=FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1);
		b=FF(b,c,d,a,x[k+11],S14,0x895CD7BE);
		a=FF(a,b,c,d,x[k+12],S11,0x6B901122);
		d=FF(d,a,b,c,x[k+13],S12,0xFD987193);
		c=FF(c,d,a,b,x[k+14],S13,0xA679438E);
		b=FF(b,c,d,a,x[k+15],S14,0x49B40821);
		a=GG(a,b,c,d,x[k+1], S21,0xF61E2562);
		d=GG(d,a,b,c,x[k+6], S22,0xC040B340);
		c=GG(c,d,a,b,x[k+11],S23,0x265E5A51);
		b=GG(b,c,d,a,x[k+0], S24,0xE9B6C7AA);
		a=GG(a,b,c,d,x[k+5], S21,0xD62F105D);
		d=GG(d,a,b,c,x[k+10],S22,0x2441453);
		c=GG(c,d,a,b,x[k+15],S23,0xD8A1E681);
		b=GG(b,c,d,a,x[k+4], S24,0xE7D3FBC8);
		a=GG(a,b,c,d,x[k+9], S21,0x21E1CDE6);
		d=GG(d,a,b,c,x[k+14],S22,0xC33707D6);
		c=GG(c,d,a,b,x[k+3], S23,0xF4D50D87);
		b=GG(b,c,d,a,x[k+8], S24,0x455A14ED);
		a=GG(a,b,c,d,x[k+13],S21,0xA9E3E905);
		d=GG(d,a,b,c,x[k+2], S22,0xFCEFA3F8);
		c=GG(c,d,a,b,x[k+7], S23,0x676F02D9);
		b=GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A);
		a=HH(a,b,c,d,x[k+5], S31,0xFFFA3942);
		d=HH(d,a,b,c,x[k+8], S32,0x8771F681);
		c=HH(c,d,a,b,x[k+11],S33,0x6D9D6122);
		b=HH(b,c,d,a,x[k+14],S34,0xFDE5380C);
		a=HH(a,b,c,d,x[k+1], S31,0xA4BEEA44);
		d=HH(d,a,b,c,x[k+4], S32,0x4BDECFA9);
		c=HH(c,d,a,b,x[k+7], S33,0xF6BB4B60);
		b=HH(b,c,d,a,x[k+10],S34,0xBEBFBC70);
		a=HH(a,b,c,d,x[k+13],S31,0x289B7EC6);
		d=HH(d,a,b,c,x[k+0], S32,0xEAA127FA);
		c=HH(c,d,a,b,x[k+3], S33,0xD4EF3085);
		b=HH(b,c,d,a,x[k+6], S34,0x4881D05);
		a=HH(a,b,c,d,x[k+9], S31,0xD9D4D039);
		d=HH(d,a,b,c,x[k+12],S32,0xE6DB99E5);
		c=HH(c,d,a,b,x[k+15],S33,0x1FA27CF8);
		b=HH(b,c,d,a,x[k+2], S34,0xC4AC5665);
		a=II(a,b,c,d,x[k+0], S41,0xF4292244);
		d=II(d,a,b,c,x[k+7], S42,0x432AFF97);
		c=II(c,d,a,b,x[k+14],S43,0xAB9423A7);
		b=II(b,c,d,a,x[k+5], S44,0xFC93A039);
		a=II(a,b,c,d,x[k+12],S41,0x655B59C3);
		d=II(d,a,b,c,x[k+3], S42,0x8F0CCC92);
		c=II(c,d,a,b,x[k+10],S43,0xFFEFF47D);
		b=II(b,c,d,a,x[k+1], S44,0x85845DD1);
		a=II(a,b,c,d,x[k+8], S41,0x6FA87E4F);
		d=II(d,a,b,c,x[k+15],S42,0xFE2CE6E0);
		c=II(c,d,a,b,x[k+6], S43,0xA3014314);
		b=II(b,c,d,a,x[k+13],S44,0x4E0811A1);
		a=II(a,b,c,d,x[k+4], S41,0xF7537E82);
		d=II(d,a,b,c,x[k+11],S42,0xBD3AF235);
		c=II(c,d,a,b,x[k+2], S43,0x2AD7D2BB);
		b=II(b,c,d,a,x[k+9], S44,0xEB86D391);
		a=AddUnsigned(a,AA);
		b=AddUnsigned(b,BB);
		c=AddUnsigned(c,CC);
		d=AddUnsigned(d,DD);
	}
 
	var temp = WordToHex(a)+WordToHex(b)+WordToHex(c)+WordToHex(d);
 
	return temp.toLowerCase();
}
