// ishop studio - www.ishopstudio.com//Utilitiesfunction openWindow(theURL,winName,features) {	window.open(theURL,winName,features);	return false;}function validEmail(email){ 	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;	if (filter.test(email) !=true){	return false;	}else{	return true;	}	}function checkDomain(nname) {var arr = new Array('.com','.net','.org','.biz','.coop','.info','.museum','.name','.pro','.edu','.gov','.int','.mil','.ac','.ad','.ae','.af','.ag','.ai','.al','.am','.an','.ao','.aq','.ar','.as','.at','.au','.aw','.az','.ba','.bb','.bd','.be','.bf','.bg','.bh','.bi','.bj','.bm','.bn','.bo','.br','.bs','.bt','.bv','.bw','.by','.bz','.ca','.cc','.cd','.cf','.cg','.ch','.ci','.ck','.cl','.cm','.cn','.co','.cr','.cu','.cv','.cx','.cy','.cz','.de','.dj','.dk','.dm','.do','.dz','.ec','.ee','.eg','.eh','.er','.es','.et','.fi','.fj','.fk','.fm','.fo','.fr','.ga','.gd','.ge','.gf','.gg','.gh','.gi','.gl','.gm','.gn','.gp','.gq','.gr','.gs','.gt','.gu','.gv','.gy','.hk','.hm','.hn','.hr','.ht','.hu','.id','.ie','.il','.im','.in','.io','.iq','.ir','.is','.it','.je','.jm','.jo','.jp','.ke','.kg','.kh','.ki','.km','.kn','.kp','.kr','.kw','.ky','.kz','.la','.lb','.lc','.li','.lk','.lr','.ls','.lt','.lu','.lv','.ly','.ma','.mc','.md','.mg','.mh','.mk','.ml','.mm','.mn','.mo','.mp','.mq','.mr','.ms','.mt','.mu','.mv','.mw','.mx','.my','.mz','.na','.nc','.ne','.nf','.ng','.ni','.nl','.no','.np','.nr','.nu','.nz','.om','.pa','.pe','.pf','.pg','.ph','.pk','.pl','.pm','.pn','.pr','.ps','.pt','.pw','.py','.qa','.re','.ro','.rw','.ru','.sa','.sb','.sc','.sd','.se','.sg','.sh','.si','.sj','.sk','.sl','.sm','.sn','.so','.sr','.st','.sv','.sy','.sz','.tc','.td','.tf','.tg','.th','.tj','.tk','.tm','.tn','.to','.tp','.tr','.tt','.tv','.tw','.tz','.ua','.ug','.uk','.um','.us','.uy','.uz','.va','.vc','.ve','.vg','.vi','.vn','.vu','.ws','.wf','.ye','.yt','.yu','.za','.zm','.zw');var mai = nname;var val = true;var dot = mai.lastIndexOf(".");var dname = mai.substring(0,dot);var ext = mai.substring(dot,mai.length);//alert(ext);	if(dot>2 && dot<57){	for(var i=0; i<arr.length; i++)	{	  if(ext == arr[i])	  {	 	val = true;		break;	  }		  else	  {	 	val = false;	  }	}	if(val == false)	{	  	 alert("Your domain extension "+ext+" is not correct");		 return false;	}	else	{		for(var j=0; j<dname.length; j++)		{		  var dh = dname.charAt(j);		  var hh = dh.charCodeAt(0);		  if((hh > 47 && hh<59) || (hh > 64 && hh<91) || (hh > 96 && hh<123) || hh==45 || hh==46)		  {			 if((j==0 || j==dname.length-1) && hh == 45)			  	 {		 	  	 alert("Domain name should not begin are end with '-'");			      return false;		 	 }		  }		else	{		  	 alert("Your domain name should not have special characters");			 return false;		  }		}	}}else{ alert("Your Domain name is too short/long"); return false;}	return true;}function md5(s){	function Z(n,c){return(n<<c)|(n>>>(32-c))}	function Y(q,a,b,x,s,t){return X(Z(X(X(a,q),X(x,t)),s),b)}	function A(a,b,c,d,x,s,t){return Y((b&c)|((~b)&d),a,b,x,s,t)}	function B(a,b,c,d,x,s,t){return Y((b&d)|(c&(~d)),a,b,x,s,t)}	function C(a,b,c,d,x,s,t){return Y(b^c^d,a,b,x,s,t)}	function D(a,b,c,d,x,s,t){return Y(c^(b|(~d)),a,b,x,s,t)}	function X(x,y){var l=(x&0xFFFF)+(y&0xFFFF),m=(x>>16)+(y>>16)+(l>>16);return(m<<16)|(l&0xFFFF)}		var w=s.length*8,i,hx="0123456789abcdef",L=(((w+64)>>>9)<<4)+15,x=Array(L+15);	for(i=0;i<x.length;++i)x[i]=0;	for(i=0;i<w;i+=8)x[i>>5]|=(s.charCodeAt(i/8)&255)<<(i%32);	x[w>>5]|=0x80<<((w)%32);	x[L-1]=w;		var a=1732584193,b=-271733879,c=-1732584194,d=271733878;	for(i=0;i<L;i+=16){		var oa=a,ob=b,oc=c,od=d;		a=A(a,b,c,d,x[i],7,-680876936);d=A(d,a,b,c,x[i+1],12,-389564586);c=A(c,d,a,b,x[i+2],17,606105819);b=A(b,c,d,a,x[i+3],22,-1044525330);		a=A(a,b,c,d,x[i+4],7,-176418897);d=A(d,a,b,c,x[i+5],12,1200080426);c=A(c,d,a,b,x[i+6],17,-1473231341);b=A(b,c,d,a,x[i+7],22,-45705983);		a=A(a,b,c,d,x[i+8],7,1770035416);d=A(d,a,b,c,x[i+9],12,-1958414417);c=A(c,d,a,b,x[i+10],17,-42063);b=A(b,c,d,a,x[i+11],22,-1990404162);		a=A(a,b,c,d,x[i+12],7,1804603682);d=A(d,a,b,c,x[i+13],12,-40341101);c=A(c,d,a,b,x[i+14],17,-1502002290);b=A(b,c,d,a,x[i+15],22,1236535329);		a=B(a,b,c,d,x[i+1],5,-165796510);d=B(d,a,b,c,x[i+6],9,-1069501632);c=B(c,d,a,b,x[i+11],14,643717713);b=B(b,c,d,a,x[i],20,-373897302);		a=B(a,b,c,d,x[i+5],5,-701558691);d=B(d,a,b,c,x[i+10],9,38016083);c=B(c,d,a,b,x[i+15],14,-660478335);b=B(b,c,d,a,x[i+4],20,-405537848);		a=B(a,b,c,d,x[i+9],5,568446438);d=B(d,a,b,c,x[i+14],9,-1019803690);c=B(c,d,a,b,x[i+3],14,-187363961);b=B(b,c,d,a,x[i+8],20,1163531501);		a=B(a,b,c,d,x[i+13],5,-1444681467);d=B(d,a,b,c,x[i+2],9,-51403784);c=B(c,d,a,b,x[i+7],14,1735328473);b=B(b,c,d,a,x[i+12],20,-1926607734);		a=C(a,b,c,d,x[i+5],4,-378558);d=C(d,a,b,c,x[i+8],11,-2022574463);c=C(c,d,a,b,x[i+11],16,1839030562);b=C(b,c,d,a,x[i+14],23,-35309556);		a=C(a,b,c,d,x[i+1],4,-1530992060);d=C(d,a,b,c,x[i+4],11,1272893353);c=C(c,d,a,b,x[i+7],16,-155497632);b=C(b,c,d,a,x[i+10],23,-1094730640);		a=C(a,b,c,d,x[i+13],4,681279174);d=C(d,a,b,c,x[i],11,-358537222);c=C(c,d,a,b,x[i+3],16,-722521979);b=C(b,c,d,a,x[i+6],23,76029189);		a=C(a,b,c,d,x[i+9],4,-640364487);d=C(d,a,b,c,x[i+12],11,-421815835);c=C(c,d,a,b,x[i+15],16,530742520);b=C(b,c,d,a,x[i+2],23,-995338651);		a=D(a,b,c,d,x[i],6,-198630844);d=D(d,a,b,c,x[i+7],10,1126891415);c=D(c,d,a,b,x[i+14],15,-1416354905);b=D(b,c,d,a,x[i+5],21,-57434055);		a=D(a,b,c,d,x[i+12],6,1700485571);d=D(d,a,b,c,x[i+3],10,-1894986606);c=D(c,d,a,b,x[i+10],15,-1051523);b=D(b,c,d,a,x[i+1],21,-2054922799);		a=D(a,b,c,d,x[i+8],6,1873313359);d=D(d,a,b,c,x[i+15],10,-30611744);c=D(c,d,a,b,x[i+6],15,-1560198380);b=D(b,c,d,a,x[i+13],21,1309151649);		a=D(a,b,c,d,x[i+4],6,-145523070);d=D(d,a,b,c,x[i+11],10,-1120210379);c=D(c,d,a,b,x[i+2],15,718787259);b=D(b,c,d,a,x[i+9],21,-343485551);				a=X(a,oa);		b=X(b,ob);		c=X(c,oc);		d=X(d,od);	}	b=[a,b,c,d];	s="";	for(i=0;i<16;i++)s+=hx.charAt((b[i>>2]>>((i%4)*8+4))&0xF)+hx.charAt((b[i>>2]>>((i%4)*8))&0xF);	return s}//Base 64var END_OF_INPUT = -1;var base64Chars = new Array(    'A','B','C','D','E','F','G','H',    'I','J','K','L','M','N','O','P',    'Q','R','S','T','U','V','W','X',    'Y','Z','a','b','c','d','e','f',    'g','h','i','j','k','l','m','n',    'o','p','q','r','s','t','u','v',    'w','x','y','z','0','1','2','3',    '4','5','6','7','8','9','+','/');var reverseBase64Chars = new Array();for (var i=0; i < base64Chars.length; i++){    reverseBase64Chars[base64Chars[i]] = i;}var base64Str;var base64Count;function setBase64Str(str){    base64Str = str;    base64Count = 0;}function readBase64(){        if (!base64Str) return END_OF_INPUT;    if (base64Count >= base64Str.length) return END_OF_INPUT;    var c = base64Str.charCodeAt(base64Count) & 0xff;    base64Count++;    return c;}function encodeBase64(str){    setBase64Str(str);    var result = '';    var inBuffer = new Array(3);    var lineCount = 0;    var done = false;    while (!done && (inBuffer[0] = readBase64()) != END_OF_INPUT){        inBuffer[1] = readBase64();        inBuffer[2] = readBase64();        result += (base64Chars[ inBuffer[0] >> 2 ]);        if (inBuffer[1] != END_OF_INPUT){            result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30) | (inBuffer[1] >> 4) ]);            if (inBuffer[2] != END_OF_INPUT){                result += (base64Chars [((inBuffer[1] << 2) & 0x3c) | (inBuffer[2] >> 6) ]);                result += (base64Chars [inBuffer[2] & 0x3F]);            } else {                result += (base64Chars [((inBuffer[1] << 2) & 0x3c)]);                result += ('=');                done = true;            }        } else {            result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30)]);            result += ('=');            result += ('=');            done = true;        }        lineCount += 4;        if (lineCount >= 76){            result += ('\n');            lineCount = 0;        }    }    return result;}function readReverseBase64(){       if (!base64Str) return END_OF_INPUT;    while (true){              if (base64Count >= base64Str.length) return END_OF_INPUT;        var nextCharacter = base64Str.charAt(base64Count);        base64Count++;        if (reverseBase64Chars[nextCharacter]){            return reverseBase64Chars[nextCharacter];        }        if (nextCharacter == 'A') return 0;    }    return END_OF_INPUT;}function ntos(n){    n=n.toString(16);    if (n.length == 1) n="0"+n;    n="%"+n;    return unescape(n);}function decodeBase64(str){    setBase64Str(str);    var result = "";    var inBuffer = new Array(4);    var done = false;    while (!done && (inBuffer[0] = readReverseBase64()) != END_OF_INPUT        && (inBuffer[1] = readReverseBase64()) != END_OF_INPUT){        inBuffer[2] = readReverseBase64();        inBuffer[3] = readReverseBase64();        result += ntos((((inBuffer[0] << 2) & 0xff)| inBuffer[1] >> 4));        if (inBuffer[2] != END_OF_INPUT){            result +=  ntos((((inBuffer[1] << 4) & 0xff)| inBuffer[2] >> 2));            if (inBuffer[3] != END_OF_INPUT){                result +=  ntos((((inBuffer[2] << 6)  & 0xff) | inBuffer[3]));            } else {                done = true;            }        } else {            done = true;        }    }    return result;}
