// Preload images
//var tmpImages=['button-add.png','button-black.png','button-accept.png','button-activate.png','button-search-bg1.png','button-search-bg2.png','menu3-bg.png','menu3-bg-children.png','menu3-bg-selected.png','menu4-bg.png','menu4-bg-children2.png','menu4-bg-children.png','menu4-bg-selected.png','top-buttons-aadmin.png','top-buttons-admin.png','top-buttons-ahelp.png','top-buttons-alogin.png','top-buttons-aprofile.png','top-buttons-aregister.png','top-buttons-asearch.png','top-buttons-asell.png','top-buttons-help_2.png','top-buttons-login_2.png','top-buttons-profile_2.png','top-buttons-register_2.png','top-buttons-search_2.png','top-buttons-sell_2.png'];
//tmpImages.each( function(s) { var tmpImage=new Image(); tmpImage.src=Root+"img/"+s; } );
//

var GlobalSpace=new Object();
var jsWorkspace=new JSWorkspace();


function debugText(a)
{
	if( $('debugPanel')==null )
		return;

	return;
	
	var p=new Element('p');
	$('debugPanel').appendChild(p);

	var d=new Date();

	p.update(a);

}

function updateProgress2(a)
{
	var args=a['a'];
	jsWorkspace.requestGet(Root+'upload/progress,uploadId,'+args['uploadId'],null,args);
}
function updateProgress(content,args)
{
	if( content==null )
	{
		if( args['divRetrive']!=null )
			args['divRetrive'].hide();

		if( args['divProgress']!=null )
		{
			args['divProgress'].select("[text]")[0].update("Przesłano: 0%");
			args['divProgress'].show();
		}
		jsWorkspace.requestGet(Root+'upload/progress,uploadId,'+args['uploadId'],null,{callback:updateProgress,divRetrive:args['divRetrive'],divProgress:args['divProgress'],uploadId:args['uploadId']});
		return;
	}
	if( args['divRetrive']!=null )
		if( args['divRetrive'].visible() )
			return;


	if( content=='EMPTY' )
	{
		GTimeoutManager.add(3000,updateProgress2,{a:args});
		return;
	}
	var m=JSON.parse(content);

	if( m['all']!=0 )
	{
		var pr=100*m['current']/m['all'];

		if( args['divProgress']!=null )
			 args['divProgress'].select("[text]")[0].update("Przesłano: "+parseInt(pr)+"%");

		if( m['current']!=m['all'] )
			GTimeoutManager.add(3000,updateProgress2,{a:args});
		else
		{
			if( args['divProgress']!=null && args['divRetrive']!=null  )
				args['divProgress'].hide();
			if( args['divRetrive']!=null )
				args['divRetrive'].show();
		}
	}
	else
		GTimeoutManager.add(3000,updateProgress2,{a:args});
}



var Hurcik=new Object();
Hurcik.setMessageOk=function(element,text)
{
	element.update(text);
	element.removeClassName('msgError');
	element.addClassName('msgOk');
}
Hurcik.setMessageError=function(element,text)
{
	element.update(text);
	element.removeClassName('msgOk');
	element.addClassName('msgError');
}
Hurcik.msgError=function(text,element)
{
	element.removeClassName('msgOk');
	element.addClassName('msgError');
	element.update(text);
}
Hurcik.msgOk=function(text,element)
{
	element.removeClassName('msgError');
	element.addClassName('msgOk');
	element.update(text);
}
Hurcik.logout=function()
{
	jsWorkspace.requestGet(Root+'logout',{where:Element.extend(document.body),what:$('coverWaitIconBig'),hcenter:true,vcenter:true},{callback:Hurcik.afterLogout});;
}
Hurcik.afterLogout=function()
{
	jsWorkspace.coverElement({where:Element.extend(document.body),msg:'Zostałeś wylogowany. Zapraszamy ponownie.',hcenter:true,vcenter:true,msgClass:'msgBig'});
	setTimeout("window.location=Root+'';",3000);
}



Hurcik.goto1=function()
{
	if( Hurcik.beforeItemEditUrl==null )
		window.location=Root;
	else
		Hurcik.goto(Hurcik.beforeItemEditUrl.url);
}
Hurcik.urlStack=new Array();



Hurcik.goBack=function(steps)
{
	if( steps==null )
		steps=1;
	var url=Hurcik.urlStack.pop();
	url=null;

	while(url==null && Hurcik.urlStack.length>0)
		url=Hurcik.urlStack.pop();

	if( url!=null ) {
		if( steps>1 )
			Hurcik.goBack(steps-1);
		else
			Hurcik.goto(url.url,url.args);

	}
	else
		window.location=Root+'home';
}



Hurcik.goto=function(url, args, onlyStack)
{
	if( GlobalSpace.panelChanger!=null ) GlobalSpace.panelChanger.hideAll();
	
	var putOnStack=true;
	if( args!=null )
		if( args.noStack!=null )
			if( args.noStack )
				putOnStack=false;
	if( putOnStack )
	{
		Hurcik.urlStack.push({url:url,args:args});

		window.location.hash='#h';
		window.location.hash='#h#h';
		Hurcik.locationHash=window.location.hash;

	}
	//else
	//	Hurcik.urlStack.push(null);

	if( onlyStack!=null )
		if( onlyStack )
			return;

	var tmp=new Object();
	if( args!=null )
	{
		tmp=args;
		tmp.expression=args.afterJSExpr;
	}
	if( tmp.expression==null )
		tmp.expression='Hurcik.postRequestInit();';
	else
		tmp.expression='Hurcik.postRequestInit();'+tmp.expression;
	tmp.destId='content';
	tmp.scrollTo=[0,0];
	
	$('content').update('');

	jsWorkspace.requestGet(url,{where:$('content'),what:$('coverWaitIconBig'),vcenter:true,hcenter:true},tmp);
}

Hurcik.gotoForm=function(formName,args)
{
	if( GlobalSpace.panelChanger!=null ) GlobalSpace.panelChanger.hideAll();

	var putOnStack=true;
	if( args!=null )
		if( args.noStack!=null )
			if( args.noStack )
				putOnStack=false;


	if( args==null )
		args=new Object();

	var tmp=new Object();
	if( args!=null )
	{
		tmp=args;
		tmp.expression=args.afterJSExpr;
	}
	if( tmp.expression==null )
		tmp.expression='Hurcik.postRequestInit();';
	else
		tmp.expression='Hurcik.postRequestInit();'+tmp.expression;
	tmp.destId='content';
	
	tmp.scrollTo=[0,0];

	var url=jsWorkspace.requestPost(formName,{where:$('content'),what:$('coverWaitIconBig'),vcenter:true,hcenter:true},tmp);
	if( putOnStack )
		Hurcik.urlStack.push({url:url,args:args});
	//else
	//	Hurcik.urlStack.push(null);
}


Hurcik.catchBack=function()
{
			setInterval(function() {
		
							if (window.location.hash != Hurcik.locationHash && window.location.hash) {
								if( window.location.hash.startsWith('#h') )
								{
								window.location.hash='#h';
								window.location.hash='#h#h';
								Hurcik.locationHash=window.location.hash;
								Hurcik.goBack();
								}
							}
						}, 500);

}

function topMenuCallback(b,args)
{
	if( args==null )
		return;
	if( args.rootButton==null )
		return;
	if( args.menu==null )
		return;


	if( b )
		args.rootButton.src=Root+'img/top-buttons-'+args.menu.name+'.png';
	else {
		args.rootButton.src=Root+'img/top-buttons-a'+args.menu.name+'.png';
		for(var i=0;i<topMenus.length;i++)
			if( topMenus[i]!=args.menu )
				topMenus[i].close();
	}

}

function confirmAction(text)
{
	return window.confirm(text);
}


function addToOrderedTable(ot,name,changeable,withCheckbox,orderable,removable,prefix,input)
{
	var str='';
	if( orderable )
		str=str+'<td><div type="orderedTableLinkUpDiv"><a href="javascript:;" type="orderedTableLinkUp"><img src=Root+"img/order-up1.png"/></a></div></td> <td><div type="orderedTableLinkDownDiv"><a href="javascript:;" type="orderedTableLinkDown"><img src=Root+"img/order-down1.png"/></a></div></td>';
	if( removable )
		str=str+'<td><a href="javascript:;" type="orderedTableLinkRemove"><img src=Root+"img/order-delete1.png"/></a></td>';
	if( changeable )
		str=str+'<td><a href="javascript:;" type="orderedTableLinkChange"><img src=Root+"img/order-edit1.png"/></a></td>';
	if( withCheckbox )
		str=str+'<td><input type="hidden" name="'+prefix+'Cb" value="false" typeInput="orderedTableCheckbox"/><input type="checkbox" onclick="Element.extend(this).previous().value=\'\'+this.checked"/></td>';

	str=str+'<td type="orderedTableName">'+name+'</td><input typeInput="orderedTableNameInput" type="hidden" name="'+prefix+'Name" value="'+name+'"/><input typeInput="orderedTableIdInput" type="hidden" name="'+prefix+'Id" value=""/>';

	OrderedTable.add(ot,str,input);
}


Hurcik.requestAndBack=function(url,msg,msgClass)
{
	if( msgClass==null )
		msgClass='classCoverMessageBig';
	jsWorkspace.requestGet(url,{where:$('content'),what:$('coverWaitIconBig'),vcenter:true,hcenter:true},{msg:msg,msgClass:msgClass,msgTimeout:3000,expression:'Hurcik.requestAndBackCallback()',expressionTimeout:3000});
}
Hurcik.requestAndBackForm=function(form,msg,msgClass)
{
	if( msgClass==null )
		msgClass='classCoverMessageBig';



	jsWorkspace.requestPost(form,{where:$('content'),what:$('coverWaitIconBig'),vcenter:true,hcenter:true},{msg:msg,msgClass:msgClass,msgTimeout:3000,expression:'Hurcik.requestAndBackCallback()',expressionTimeout:3000});
}


Hurcik.requestAndBackCallback=function(content)
{
	if( Hurcik.urlStack.last()!=null ) {
		var url=Hurcik.urlStack.pop();
		Hurcik.goto(url.url,url.args);
	}
	else
		window.location=Root+'home';
}


Hurcik.postRequestInit=function()
{
	ImagePreviewer.findAndSmall($("content")); CategoryTree.init(); OrderedTable.init(); SearchableControl.init();

	Banner.StopInstances();
	PanelOfItems.StopInstances();

	
	Banner.Scan();
	PanelOfItems.Scan();
}



Hurcik.buy2=function()
{
	if( $('buyQuantity')==null )
	{
		var v=new Validator({containerElement:$('quantityEntries')});
		var r=v.validate();
		if( !r.validAll )
		{
			Hurcik.msgError('Błędna wartość lub brak takiej dostęnej ilości',$('msgBuy'));
			return;
		}

		var tmp1=0;
		$('quantityEntries').select('[inputType=quantity]').each(function(o) { if( o.readAttribute('validateInputType')=='float' ) { if( validateFloatValue(o.value.replace(',','.')) ) tmp1+=parseFloat(o.value.replace(',','.'));} else { if( validateIntValue(o.value) ) tmp1+=parseInt(o.value);}  }  );

		var fi2=parseInt($('buyQuantityMinimum').value);

		tmp1*=1000;

		if( tmp1<=0 || tmp1<fi2 )
		{
			Hurcik.msgError('Ilość musi być większa od zera i od ilości minimalnej',$('msgBuy'));
			return;
		}

		$('msgBuy').update("");

		var tmp2=$('quantityEntries').select('[inputType=quantity]');

		$('buyQuantityCaption').update("");

		var text="<table class='pad1 nowrap'>";
		for(var i=0;i<tmp2.length;i++)
		{
			var o=tmp2[i];
			var tmp3;
			if( o.readAttribute('validateInputType')=='float' ) {
				if( !validateFloatValue(o.value.replace(',','.')) )
					continue;
				tmp3=parseFloat(o.value.replace(',','.'));
			}
			else {
				if( !validateIntValue(o.value) )
					continue;
				tmp3=parseInt(o.value);
			}

			var tmp="<tr><td>"+o.up().previous().innerHTML+"</td><td>"+tmp3+"</td><td>"+o.up().next().innerHTML+"</td></tr>";

			text+=tmp;
		}

		text+="</table>";

		$('buyQuantityCaption').update(text);


		$('buy1').hide();
		$('buy2').show();
		$('buy3').hide();
		return;
	}


	var type=$('buyQuantity').readAttribute('validateInputType');

	var valid=1;
	if( type=='integer' )
	{
		valid=validateInteger("",$('buyQuantity'));
		if( valid!=0 )
			Hurcik.setMessageError($('msgBuy'),'Ilość musi być liczbą całkowitą');
	}
	else
	{
		valid=validateFloat("",$('buyQuantity'));
		if( valid!=0 )
			Hurcik.setMessageError($('msgBuy'),'Ilość musi być liczbą');
	}

	if( valid!=0 )
		return;

	var f=parseFloat($('buyQuantity').value);
	var fi=parseInt(f*1000);

	var fil=parseInt($('buyQuantityLeft').value);
	if( fi>fil )
	{
		Hurcik.setMessageError($('msgBuy'),'Taka ilość jest niedostępna');
		return;
	}

	var fi2=parseInt($('buyQuantityMinimum').value);
	if( fi<fi2 )
	{
		Hurcik.setMessageError($('msgBuy'),'Ilość mniejsza od minimalnej');
		return;
	}

	$('msgBuy').update("");

	$('buyQuantityCaption').update($('buyQuantity').value);

	$('buy1').hide();
	$('buy2').show();
	$('buy3').hide();
}
Hurcik.buy1=function()
{
	$('msgBuy').update("");
	if( $('buyQuantity')!=null )
		$('buyQuantity').value='';
	else
		$('quantityEntries').select('[inputType=quantity]').each(function(o) {o.value='';});
	$('buy1').show();
	$('buy2').hide();
	$('buy3').hide();
}
Hurcik.buy3=function()
{
	if( $('buyQuantity')!=null ) {
		var f=parseFloat($('buyQuantity').value);
		var fi=parseInt(f*1000);
		jsWorkspace.requestGet(Root+'buy,id,'+$('buyId').value+',q,'+fi,{where:$('buy2'),what:$('coverWaitIcon'),hcenter:true,vcenter:true},{callback:Hurcik.buy3callback})
	}
	else {
		var tmp2=$('quantityEntries').select('[inputType=quantity]');
		var text="";
		for(var i=0;i<tmp2.length;i++)
		{
			var o=tmp2[i];
			var tmp3;
			if( o.readAttribute('validateInputType')=='float' ) {
				if( !validateFloatValue(o.value.replace(',','.')) )
					continue;
				tmp3=parseInt(parseFloat(o.value.replace(',','.'))*1000);
			}
			else {
				if( !validateIntValue(o.value) )
					continue;
				tmp3=parseInt(o.value)*1000;
			}
			text+=","+o.readAttribute('name')+","+tmp3;
		}

		jsWorkspace.requestGet(Root+'buy,id,'+$('buyId').value+text,{where:$('buy2'),what:$('coverWaitIcon'),hcenter:true,vcenter:true},{callback:Hurcik.buy3callback})
	}
}

Hurcik.buy3callback=function(content)
{
	var m=JSWorkspace.parseJSON(content);
	if( m!=null )
	{
		if( m.result==0 )
		{
			if( m.transactionId!=null )
			{
				Hurcik.goto(Root+"transaction/int,id,"+m.transactionId);
			}
			else
			{
				$('buy3').show();
				$('buy2').hide();
				$('buy1').hide();
			}
		}
		else
		{
			Hurcik.setMessageError($('msgBuy'),'Zakup nie udany. Oferta wycofana lub niewystarczająca dostępna ilość');
			$('buy3').hide();
			$('buy2').hide();
			$('buy1').show();
		}
	}
}


Hurcik.showHideContent=function(div)
{
	if( div.visible() )
		Effect.SlideUp(div);
	else
		Effect.SlideDown(div);

}


GlobalSpace.jsInitMyOffers=function()
{
	CategoryTree.init();
	GlobalSpace.filter=new Filter({ajax:true,filterFeaturesDiv:$('filterFeatures'),categoryTree:CategoryTree.registered.get($('filterCT')),container:$('filters'),action:'myoffers',afterJS:'GlobalSpace.jsInitMyOffers();'});
}



Hurcik.multiDelete=function()
{

	var tmp=new Array();
	Element.extend(document.body).select('[typeInput=itemIdMulti]').each(function(o){if( o.checked)tmp.push(o.name.replace('id',''));});
	if( tmp.length>0 )
		Hurcik.requestAndBack(Root+'item/delete,ids,'+tmp.implode(':'),'Oferty zostały usunięte');	
}
Hurcik.multiRepublish=function()
{
	var tmp=new Array();
	Element.extend(document.body).select('[typeInput=itemIdMulti]').each(function(o){if( o.checked)tmp.push(o.name.replace('id',''));});
	if( tmp.length>0 )
		Hurcik.requestAndBack(Root+'item/republish,ids,'+tmp.implode(':'),'Oferty zostały opublikowane ponownie');
}


Hurcik.photoPreview=function(args)
{
	alert('d2:'+args);
}
