var ass=/msie 7/i.test(navigator.userAgent)
var s4y={}
var itsFunny=false //раздел приколы

if (1){
	ajax.json("/v/10/js/player.multi.js","")
	
}else if (/opera/i.test(navigator.userAgent)){
	ajax.json("http://song4you.ru/v/10/js/player.opera.js","",function(){
		(function(){
			if (player.status=="loading"){
				player.button.className="loading"
				if (player.playlist.length==player.players.length)
					player.status="ready"
			}
			if (player.playing!=false && niftyplayer(player.playing).getState()=="playing"){
				player.button.className="stop"
			}
			setTimeout(arguments.callee,300)
		})();
	})
	
}else{
	ajax.json("http://song4you.ru/v/10/js/player.js","")
	
}



ready(
	function(){
		//выделение текущего пункта меню
		createActiveLeftMenu();

		//Это раздел "Приколы"
		if (Math.floor(parseInt(location.href.split("r=")[1])/1000)==40){
			itsFunny=true
		}
		
		//Страница с формой заказа
		if (ge('order') && ge('order').tagName.toLowerCase()!="input"){
			
			//addEvent(ge("song_select_trigger"),"click",function(){slideNodeVertical(ge("song_select"))})
			//Имена
			orderActivate();
			namesActivate();
			
			//расширенная версия.
			addEvent(ge("song_trigger"),"click",function(){
				return false; //Отключено.
				
				var el=ge("songWrap")
				slideNodeVertical(el,function(){
					
					if (this.style.height=="0px"){
						this.style.visibility="hidden"
					}else{
						this.style.visibility="visible"
						this.calculateRoundBlocksConners()
					}
				})
			})
			
		}else{
		
			//players
			each(geTag("a"),function(){
				if (this.className=="play"){
					var a=this
					a.onclick=function(){playExample(a); return false}
					//addEvent(a,"click",function(){playExample(a); return false;})
				}
			})
		}
		
		//режем длинные названия в плеерах
		each(geClass("players"),function(){
			var ul=this
			each(geTag("h2",ul),function(){
				var h2=this
				if (h2.innerHTML.length>20){
					h2.innerHTML=h2.innerHTML.substr(0,20)+"..."
				}
			})
		})
		
		
		//страница поздравления, верхний желтый блок
		if (ge("service_steps_header")){
			geTag("span",ge("service_steps_header"))[0].onclick=function(){
				el=geNext(this.parentNode)
				this.innerHTML=this.innerHTML=="подробнее"?"скрыть":"подробнее";
				slideNodeVertical(el,function(){el.parentNode.calculateRoundBlocksConners()})
			}
		}
		
		
		//рассчет высоты блока со списком поздравлений
		var holidays = ge("holidays")
		
		if (holidays){
			var lis=geTag("li",holidays)
			var q=(itsFunny==false?4:1.8)
			ce.element(lis[0])
			holidays.style.height = +(Math.ceil(lis.length/q) * lis[0].h)+"px"
		}
		
		//popup подсказки
		each(geClass("type_header",ge("s4u")),function(){
			var el=this
			addEvent(el,"click",function(){
				var header=el.innerHTML
				var txt=geClass("type_text",el.parentNode)[0].innerHTML
				createSmallType(el,header,txt)
			})
		})
		
		
		//Горизонтальный скролл в услугах - блок "Это может быть интересно"
		if (ge('most_intresting')){
			var scrollWrap=geClass("scrollWrap",ge('most_intresting'))[0]
			var scrollerTrack=geClass("scrollerTrack",ge('most_intresting'))[0]
			var scrollContent=geClass("scrollContent",scrollWrap)[0]
			
			HScrollActivate(scrollWrap,scrollerTrack,scrollContent)
		}
		
		//подсказки
		if (ge("service_tips")){
			addEvent(geTag("span",ge("service_tips"))[0],"click",showNextHint)
			var ps=geTag("p",ge("service_tips"))
			var rnd=Math.floor(Math.random() * (ps.length-1 - 0 + 1)) + 0;
			ge("service_tips").currentHint=ps[rnd]
			if (style(ps[rnd],"display")=="none"){
				opacity(ps[rnd],0)
				ps[rnd].style.display="block"
			}
			aniOpacity(ps[rnd],0,100,100)
		}
		
		
		//страница помощи
		if (ge('questions'))
		each(geClass("question",ge("questions")),function(){
			var el=this
			addEvent(el,"click",function(){
				questionsAnswers(el)
			})
		})
		
		createRoundBlocksConners()
})

function createActiveLeftMenu(){
	each(geClass("active",ge("left")),function(){
		this.className=""
	})
	each(geTag("a",ge("left")),function(){
		var dr=parseInt(location.href.split("?r=")[1])
		var dm=parseInt(location.href.split("&m=")[1])
		var lr=parseInt(this.href.split("?r=")[1])
		var lm=parseInt(this.href.split("&m=")[1])
		dr=isNaN(dr)?parseInt(location.href.split("&r=")[1]):dr
		lr=isNaN(lr)?parseInt(location.href.split("&r=")[1]):lr
		if (lr==dr && (lm==dm || (isNaN(lm) && isNaN(dm)))){
			this.parentNode.className="active"
		}
	})
}

function questionsAnswers(el){
	each(geClass("question_open"),function(){
		if (this==el) return;
		var answ=geNext(this)
		this.className="question"
		slideNodeVertical(answ)
	})
	el.className=el.className=="question"?"question_open":"question"
	slideNodeVertical(geNext(el));
}


function showNextHint(){
	var next=geNext(ge("service_tips").currentHint)
	if (next.tagName.toLowerCase()!="p"){
		next=geTag("p",ge("service_tips"))[0]
	}
	
	aniOpacity(ge("service_tips").currentHint,100,0,100,function(){
		ge("service_tips").currentHint.style.display="none"
		next.style.display="block"
		aniOpacity(next,0,100,200,function(){
			ge("service_tips").currentHint=next
		})
	})
}


function makeTrack( t ){
	var tBase = "";
	var id = t.id;
	var p = t.path;
	var tPath = p.substr( 0, p.lastIndexOf('/')+1 );
	var track = p.substr( p.lastIndexOf('/')+1 );

	return new s4yMp3Track( {id:id, trackbase:tBase, trackpath:tPath, track:track} );
}

function s4yMp3Track( tr ){
	tr = tr || {trackbase:'', trackpath:'', track:''};
	this.id        = tr.id        || 0;
	this.trackbase = tr.trackbase;
	this.trackpath = tr.trackpath || '';
	this.track     = tr.track     || '';
	this.path      = this.trackbase + this.trackpath + this.track;
}

function playersStop(el){
	s4y.mp3player.getFlashObject();
	s4y.mp3player.Stop();
	each(geTag("a"),function(){
		if (el==this) return
		if (this.className=="stop" || this.className=="loading"){
			this.className="play"
		}
	})
}



function playExample(el){
	if (player.status=="loading"){
		return
	}
	if (player.status=="playing"){
		player.endPlayback()
		if (player.button!=el)
			setTimeout(function(){playExample(el)},100)
		return
	}
	
	
	var wrap=el.parentNode.parentNode
	var href=geClass("button",wrap)[0].href
	var reason=parseInt(href.split("?r=")[1])
	var style=parseInt(href.split("&s=")[1])
	reason=isNaN(reason)?parseInt(location.href.split("&r=")[1]):reason
	style=(reason>=40000 && reason<50000)?'':'_'+style


	player.status=="loading"
	player.button=el
	player.playlist.push('samples/'+reason+style+'.mp3')
	player.load();
}

function playExample2(el){
	
	s4y.mp3player.getFlashObject();
	s4y.mp3player.Stop();
	
	if (el.className=="stop" || el.className=="loading"){
		el.className="play"
		return;
	}
	
	each(geClass("stop",ge("s4u")),function(){
		this.className="play"
	})
	each(geClass("loading",ge("s4u")),function(){
		this.className="play"
	})
	el.className="stop"
	
	var wrap=el.parentNode.parentNode
	var href=geClass("button",wrap)[0].href
	var reason=parseInt(href.split("&r=")[1])
	var style='_'+parseInt(href.split("&s=")[1])

	style=(reason>=40000 && reason<50000)?'':style

	var playlist =  [makeTrack({id:0,path:'samples/'+reason+style+'.mp3'})];

	s4y.mp3player.runPlayList( toPlayer(playlist), 0, 0 );
	currentPlay=false;
}

function toPlayer(result){
	var tBase = 'http://song4you.ru/audio2/';
	for(var i in result){
		var tr =result[i];
		tr.path=tBase+tr.path;
	}
	return result;
}

function onPlayerUpdate(state)
{
	switch(state)
	{
		case 0:
		each(geClass("stop",ge("s4u")),function(){this.className="play"})
		each(geClass("loading",ge("s4u")),function(){this.className="play"})
		break;
		case 1:
		each(geClass("stop",ge("s4u")),function(){this.className="loading"})
		break;
		case 2:
		each(geClass("loading",ge("s4u")),function(){this.className="stop"})
		break;
    }
}

function createRoundBlocksConners(){
	each(geClass("round_corner_block"),function(){
		var block=this
		if (ass){
			block.calculateRoundBlocksConners=function(){};
			return;
		}
		crEl({name:"div",className:"tl",parent:block,prepend:true})
		crEl({name:"div",className:"tr",parent:block,prepend:true})
		crEl({name:"div",className:"bl",parent:block,prepend:true})
		crEl({name:"div",className:"br",parent:block,prepend:true})
		block.calculateRoundBlocksConners=function(){
			var block=this
			var h=20
			var v=15
			ce.element(block)
			geClass("tl",block)[0].style.marginLeft=+(-h)+"px"
			geClass("tl",block)[0].style.marginTop=+(-v)+"px"
			
			geClass("tr",block)[0].style.marginLeft=+(block.w-h-h)+"px"
			geClass("tr",block)[0].style.marginTop=+(-v)+"px"
			
			geClass("bl",block)[0].style.marginLeft=+(-h)+"px"
			geClass("bl",block)[0].style.marginTop=+(block.h-h-v)+"px"
			
			geClass("br",block)[0].style.marginLeft=+(block.w-h-h)+"px"
			geClass("br",block)[0].style.marginTop=+(block.h-h-v)+"px"
		}
		block.calculateRoundBlocksConners();
	})
}


function toggleDisplayNode(el,callback){
	if (style(el,"display")=="none"){
		el.style.display='block'
	}else if (style(el,"display")=="block"){
		el.style.display='none'
	}
	toggleVisibilityNode(el,callback)
	if (callback) callback.call(el);
}


function toggleVisibilityNode(el,callback){
	if (style(el,"visibility")=="hidden"){
		el.style.visibility='visible'
	}else if (style(el,"visibility")=="visible"){
		el.style.visibility='hidden'
	}
	if (callback) callback.call(el);
}


function slideNodeVertical(el,callback){
	
	if (ass){
		toggleDisplayNode(el,callback)
		return
	}
	
	if (el.pt==undefined){
		if (style(el,"display")=="none"){
			el.style.position="absolute"
			opacity(el,0)
			el.style.display='block'
		}
		el.style.overflow="hidden"
		el.he=parseInt(style(el,"height"))
					ce.element(el)
			el.he=el.h
		if (isNaN(el.he)){//opera fucking shit
			ce.element(el)
			el.he=el.h
		}
		el.pt=parseInt(style(el,"paddingTop"))
		el.pb=parseInt(style(el,"paddingBottom"))
		el.mt=parseInt(style(el,"marginTop"))
		el.mb=parseInt(style(el,"marginBottom"))
		//pr(el)
		if (el.style.position=="absolute"){
			el.style.height='0px'
			el.style.paddingTop='0px'
			el.style.paddingBottom='0px'
			el.style.marginTop='0px'
			el.style.marginBottom='0px'
			opacity(el,100)
			el.style.position="relative"
		}
	}
	
	if (el.style.height=="0px"){
		ani(el,
			[{param:"marginTop",from:0,to:el.mt},
			{param:"paddingTop",from:0,to:el.pt},
			{param:"height",from:0,to:el.he},
			{param:"paddingBottom",from:0,to:el.pb},
			{param:"marginBottom",from:0,to:el.mb}],
			200,callback)
	}else{
		ani(el,
			[{param:"marginTop",from:el.mt,to:0},
			{param:"paddingTop",from:el.pt,to:0},
			{param:"height",from:el.he,to:0},
			{param:"paddingBottom",from:el.pb,to:0},
			{param:"marginBottom",from:el.mb,to:0}],
			200,callback);
	}
}


function createSmallType(el,header,text){
var html=""
html += '<div style="background: url(./v/10/css/bg-popup2-t.png) no-repeat 0 0; padding-top: 25px; width: 295px; font-size:14px; font-family:Arial,Helvetica,sans-serif;">'
html += '<div style="background: url(./v/10/css/bg-popup2-c.png) repeat-y 0 0; padding: 0 13px; position: relative;">'
html += '<div>'
html += '<div style="height: 19px; overflow: hidden; padding: 0 26px 8px;">'
//html += '<a style="background: url(./v/10/css/btn-close.gif) no-repeat 0 0; float: right; height: 13px; margin: 5px -8px 0 0; overflow: hidden; text-indent: -9999px; width: 13px;" href="#">Закрыть</a>'
html += '<label style="color:#FFF; float:left; font-size:13px; padding: 2px 8px 0 0;">'+header+'</label>'
html += '</div>'
html += '<div style="background: #fff; overflow: auto; padding: 10px; width: 100%; width: 249px;">'
html += '<div>'+text+'</div>'
html += '</div></div></div>'
html += '<div style="background: url(./v/10/css/bg-popup2-b.png) no-repeat 0 0; height: 35px; position: static; width: 294px;">&nbsp;</div></div>'

html=crEl({name:"div",style:{width:"295px"},html:html})
ce.element(html)
ce.element(el)
html.style.display="none"

w.show(
	html,
	{
		windowClick:1,
		overlayClick:1,
		overlayOpacity:2,
		width:295,
		windowCSS:
			{
			display:"block",
			position:"absolute",
			color:"#333"
			},
		overlayCSS:
			{
			backgroundColor:"#ff1",
			height:"100%",
			width:"100%",
			left:"0px",
			top:"0px",
			position:"fixed"
			},
		position:[(el.left+(el.w/2)-(html.w/2)-7+ce.scrLeft),(el.top-html.h+20+ce.scrTop)]
	}
);

}

function windowOpen(url){
	myWindow=window.open(url,'_blank','width=500,height=400,titlebar=0,status=0,toolbar=0,resizable=1,scrollbars=1',1)
	myWindow.focus()
}


function utf8_encode ( str_data ) {	// Encodes an ISO-8859-1 string to UTF-8
	// 
	// +   original by: Webtoolkit.info (http://www.webtoolkit.info/)

	str_data = str_data.replace(/\r\n/g,"\n");
	var utftext = "";

	for (var n = 0; n < str_data.length; n++) {
		var c = str_data.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;
}


function md5 ( str ) {	// Calculate the md5 hash of a string
	// 
	// +   original by: Webtoolkit.info (http://www.webtoolkit.info/)
	// + namespaced by: Michael White (http://crestidg.com)

	var RotateLeft = function(lValue, iShiftBits) {
			return (lValue<<iShiftBits) | (lValue>>>(32-iShiftBits));
		};

	var AddUnsigned = function(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);
			}
		};

	var F = function(x,y,z) { return (x & y) | ((~x) & z); };
	var G = function(x,y,z) { return (x & z) | (y & (~z)); };
	var H = function(x,y,z) { return (x ^ y ^ z); };
	var I = function(x,y,z) { return (y ^ (x | (~z))); };

	var FF = function(a,b,c,d,x,s,ac) {
			a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
			return AddUnsigned(RotateLeft(a, s), b);
		};

	var GG = function(a,b,c,d,x,s,ac) {
			a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
			return AddUnsigned(RotateLeft(a, s), b);
		};

	var HH = function(a,b,c,d,x,s,ac) {
			a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
			return AddUnsigned(RotateLeft(a, s), b);
		};

	var II = function(a,b,c,d,x,s,ac) {
			a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));
			return AddUnsigned(RotateLeft(a, s), b);
		};

	var ConvertToWordArray = function(str) {
			var lWordCount;
			var lMessageLength = str.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] | (str.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;
		};

	var WordToHex = function(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;
		};

	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;

	str = this.utf8_encode(str);
	x = ConvertToWordArray(str);
	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();
}

