var servicegateway='http://'+document.domain+'/service.php';
var uploadgateway='http://'+document.domain+'/upload.php';
var currentmode='';
var cpage=0;
var ckey='';
var ccat=0;
var ckanton=0;
var cplace='';
var corder='created-DESC';
var uploadmode='';
var afterlogin='';
var kaschdaspopup;
var sharewindow;
var shareitem={id:0,title:'',descr:''};

var errortext={
	'fraudalready':'Eventuell bist Du schon registriert? Diesen User gibt es schon.',
	'fraudfilter':'Bitte keine Emailaddressen, URLs oder Telefonnummern eingeben,'
}

String.prototype.toRubicon=function(m,a){
	return this+'&cid='+cid+'&method='+m+'&param='+a;
}

jQuery.ajaxSetup({
	type:'POST',
	cache:false,
	dataType:'json',
	error:function(xhr,tstatus,texcept){
		alert('AJAX ERROR');
	}
});

function doAjax(u,d,m,a,s){
	$('.errorinput').removeClass('errorinput');
	$('#fraudnotifier').remove();
	$.ajax({
		url:u,
		data:d.toRubicon(m,a),
		success:s
	});
}

function navigate(mod,act){
	hash=mod.replace(/^.*#/,'');
	hash+='.'+act;
	currentmode=mod;
	$.historyLoad(hash);
}

function pageload(hash) {
	if(hash){
		var h=hash.split('.');
		currentmode=h[0];
		doAjax(servicegateway,'',h[0],h[1],parseResult);
	}
}

function sendForm(fid,context){
	doAjax(servicegateway,'','sendform','&'+$('#'+fid).serialize()+'&context='+context,parseResult);	
}

function openPopup(t){
	var kwindow=window.open(t,'kaschdaswindow','height=410,width=820,location=no,menubar=no,resizable=no,scrollbars=yes,toolbar=no,top=200,left=400');
	kwindow.focus();
}

function silent(){
}

function handleLogin(uid){
	userid=uid;
	$('#loginer').css('display','none');
	$('#logouter').css('display','block');
	if((afterlogin!='')&&(afterlogin.indexOf('-')>-1)){
		var t=afterlogin.split('-');
		afterlogin='';
		navigate(t[0],t[1]);
	}
}

function logout(){
	userid=0;
	$('#loginer').css('display','block');
	$('#logouter').css('display','none');
	doAjax(servicegateway,'','logout','',null);
	navigate('start','');	
}

function parseResult(data){
	switch(data.state){
		case 'success':
			$('#success').showSuccess(data.txt);
			eval(data.xjs);
		break;
		case 'failure':
			$('#success').showSuccess(data.txt);
			eval(data.xjs);
		break;
		case 'error':
		case 'fraudfilter':
		case 'fraudalready':
			var k=data.txt.split(',');
			for(var l=0;l<k.length;l++){
				$('#'+k[l]).addClass('errorinput');
				$('#'+k[l]).focus(function(){$(this).removeClass('errorinput');});
			}
			if(data.state.indexOf('fraud')>-1){
				$('#'+k[0]).parent().append("<div id='fraudnotifier' style='color:#FF3300;font-weight:bold;font-size:10px;margin-top:4px;margin-bottom:10px;'>"+errortext[data.state]+"</div>");
			}	
		break;
		case 'silent':
			eval(data.xjs);
		break;
		case 'ok':
			$('#'+data.target).html(data.txt);
			eval(data.calling+'()');
			eval(data.xjs);
			if(userid>0){
				$('#wannaregister').css('display','none');
			}
		break;
	}
}

function requestData(){
	doAjax(servicegateway,'','requestdata','&data='+$('#email').val(),parseResult);
}

function tryLogin(){
	doAjax(servicegateway,'','trylogin','&'+$('#loginform').serialize()+'&al='+(afterlogin==''?0:1),parseResult);
}

function pageNav(i){
	$('.pages').hide();
	$('#page'+i).show();
}

function performSearch(page,key,place,kanton,cat,order){
	cpage=page;
	ckey=key;
	cplace=place;
	ckanton=kanton;
	ccat=cat;
	corder=order;
	doAjax(servicegateway,'','search','&page='+page+'&key='+key+'&cmode='+currentmode+'&place='+place+'&kanton='+kanton+'&cat='+cat+'&or='+corder,parseResult);
}

function refineSearch(p){
	performSearch(p,ckey,cplace,ckanton,ccat,corder);
}

function startFullSearch(){
	performSearch(0,$('#key').val(),$('#place').val(),$('#kanton').val(),ccat,'created-DESC');
}

function startCatSearch(v){
	performSearch(0,ckey,cplace,ckanton,v,'created-DESC');
}

function startKantonSearch(v){
	performSearch(0,'','',v,0,'created-DESC');
}

function startGlobalSearch(){
	performSearch(0,$('#globalsearchvalue').val(),'',0,0,'created-DESC');
}

function startOrderSearch(o){
	performSearch(0,'','',0,0,o);
}

function startInsert(i,j){
	doAjax(servicegateway,'','insertjob','&m='+i+'&s='+j,parseResult);
}

function updateData(e,f,m){
	var p='&';
	jQuery.each(f,function(i,j){
		p+=j+'='+$('#'+j).val()+'&';
	});
	doAjax(servicegateway,'','updatedata','&target='+e.join(',')+p+'context='+m,parseResult);
}

function deleteImg(i){
	doAjax(servicegateway,'','deleteimage','&target='+i,parseResult);
}

function deleteJobImg(i){
	doAjax(servicegateway,'','deletejobimage','&target='+i,parseResult);
}

function sendAssignment(i){
	doAjax(servicegateway,'','sendassignment',i+'&msg='+$('#msg').val()+'&a='+$('#amount1').val()+'.'+$('#amount2').val(),parseResult);
}

function removeAssignment(i){
	doAjax(servicegateway,'','removeassignment','&target='+i,parseResult);
}

function showAssignments(i){
	doAjax(servicegateway,'','showassignments','&target='+i,parseResult);
}

function askQuestion(i){
	doAjax(servicegateway,'','askquestion',i+'&msg='+$('#question').val(),parseResult);
}

function sendReply(i,a,t){
	doAjax(servicegateway,'','sendreply',i+'&aid='+a+'&msg='+t,parseResult);
}

function saveJob(){
	doAjax(servicegateway,'','saveJob','&refer='+userid+'&active='+(userid==0?'0':'1')+'&'+$('#pageform').serialize(),parseResult);
}

function editjob(i){
	doAjax(servicegateway,'','editjob',i,parseResult);
}

function acceptAssignment(i,j,k){
	if(i==1){
		var q=confirm("Willst Du wirklich dieses Angebot akzeptieren? Wenn Du zustimmst, endet dieses Jobgesuch anschliessend.");
		if(q){
			doAjax(servicegateway,'','acceptassignment','&id='+j+'&aid='+k,parseResult);
		}
	}else{
		doAjax(servicegateway,'','acceptassignment','&id='+j+'&aid='+k,parseResult);
	}
}


function saveEditJob(id){
	doAjax(servicegateway,'','updatedata','&context=job&id='+id+'&'+$('#pageform').serialize(),parseResult);
}

function removeJob(i){
	var sure=confirm("Soll dieses Jobgesuch wirklich deaktiviert werden?");
	if(sure){
		doAjax(servicegateway,'','removejob',i,parseResult);
	}
}

function deactivate(i){
	var sure=confirm("Soll dieses Jobgesuch wirklich deaktiviert werden?");
	if(sure){
		doAjax(servicegateway,'','deactivatejob',i,parseResult);
	}
}

function reactivate(i){
	doAjax(servicegateway,'','reactivatejob',i,parseResult);
}

function resaveJob(i){
	doAjax(servicegateway,'','resavejob',i+'&key='+$('#codehint').val()+'&mpay='+$('#mpay').val(),parseResult);
}

function rateUser(aid,uid){
	doAjax(servicegateway,'','rateuser','&uid='+uid+'&aid='+aid,parseResult);	
}

function verifyRating(){
	var p=0;
	var r=[1,2,3,4];
	jQuery.each(r,function(i,j){
		var ui=$('#rating'+j).data('stars');
		if(ui.options.checked>-1){
			p++;
		}
	});
	if(p>=4){
		$('#dorate').removeClass('buttoner_inactive').addClass('buttoner');
	}
}

function getRating(aid,uid){
	var r=[1,2,3,4];
	var p="";
	jQuery.each(r,function(i,j){
		var ui=$('#rating'+j).data('stars');
		p+="&rating"+(i+1)+"="+ui.options.checked;
	});
	p+="&comment="+$('#comment').val();
	doAjax(servicegateway,'','saverating','&uid='+uid+'&aid='+aid+p,parseResult);
}

function openPay(t){
	//kaschdaspopup=window.open(t,'kaschdaspopup','width=610,height=610,toolbar:0,resizable=0,location=0,status=0,menubar=0,scrollbars=0');
	//kaschdaspopup.focus();
	$('#payment').html("<iframe src='"+t+"' style='width:660px;height:600px;border:none;' frameborder='0' />");
}

function preparePay(){
	doAjax(servicegateway,'','computeHash','&m='+$('#pmethod').val()+'&a='+$('#pamount').val(),parseResult);
}

function shareJob(m){
	var l=escape('http://www.kaschdas.ch/jobs/'+shareitem.id);
	switch(m){
		case 'facebook':
			sharewindow=window.open('http://www.facebook.com/sharer.php?u='+l,'sharewindow','height=410,width=820,location=no,menubar=no,resizable=no,scrollbars=no,toolbar=no,top=200,left=400');	
			sharewindow.focus();

		break;
		case 'myspace':
			sharewindow=window.open('http://www.myspace.com/Modules/PostTo/Pages/?u='+l,'sharewindow','height=410,width=820,location=no,menubar=no,resizable=no,scrollbars=no,toolbar=no,top=200,left=400');
			sharewindow.focus();
		break;	
		case 'twitter':
			sharewindow=window.open('http://twitter.com/home?status='+escape(shareitem.title+": "+unescape(l)),'sharewindow','height=410,width=820,location=no,menubar=no,resizable=no,scrollbars=no,toolbar=no,top=200,left=400');
			sharewindow.focus();

		break;
	}
}

function verifyPayment(){
	var na=$('#pamount').val();
	var nm=$('#pmethod').val();
	$('#pamount').attr('disabled',false);
	$('#pamount').children().attr('disabled',false);
	$('#handypayholder,#call2payholder').css('opacity',1);
	switch(nm){
		case 'handypay':
			$('#pamount').val('3.50').attr('disabled',true);
			na='3.50';
		break;
		case 'call2pay':
			$('#pamount').children().each(function(){
				if(parseInt(jQuery(this).val())>7){
					jQuery(this).attr('disabled',true);
				}
			});
			if(parseInt(na)>7){
				$('#pamount').val('7.00');
				na=10;
			}
		break;
	}
	$('.eamounts').html(na);
	$('.amounts').html($('#pamount :selected').text());
	$('#call2payplus').html((na=='3.50'?3:6));
	if(parseInt(na)>3.5){
		$('#handypayholder').css('opacity',0.1);
	}
	if(parseInt(na)>7.5){
		$('#call2payholder').css('opacity',0.1);
	}
}

function moneyComplete(a){	
	$('#success').showSuccess("Dein Job wurde erfolgreich eingetragen. Vielen Dank.");
	navigate('jobs',a);	
}

function showUser(user,job){
	navigate('user',user+'-'+job);	
}

function enableUpload(b,mode){
	uploadmode=mode;
	new AjaxUpload(b,{
		action:uploadgateway+'?cid='+cid+'&mode='+mode+'&hid='+$('#hid').html(),
		name:'newimage',
		data:{cid:cid},
		autoSubmit:true,
		responseType:false,
        	onSubmit:function(file , ext){
                	if(!(ext && /^(jpg|png|jpeg|gif|bmp|tiff)$/.test(ext))){
                        	alert("Bitte nur jpg|gif|png|tiff Dateien verwenden.");
                        	return false;
                	}else{
			}
        	},
		onComplete:function(file,response){
			if(parseInt(response)!=0){
				switch(uploadmode){
					case 'jobimage':
						navigate('editjob',$('#hid').html());
					break;
					default:
						navigate('mypage','data');
					break;
				}
			}else{
				alert("Es ist ein Fehler aufgetreten.");
			}
		}
	});
}

function enableStart(){
	startmode=1;
	$('#timercontrol').everyTime(12000,function(){
		if(startmode<3){
			startmode++;
		}else{
			startmode=1;
		}
		$('#ileft').attr('src','http://www.kaschdas.ch/ressources/structure/start_l'+startmode+'.jpg');
		$('#iright').attr('src','http://www.kaschdas.ch/ressources/structure/start_r'+startmode+'.jpg');
	});
}

jQuery.fn.center=function(options){
	var options=jQuery.extend({vertical:true,horizontal:true,useDefault:true},options);
	return this.each(function(){
		if(options.horizontal){
			jQuery(this).css('left',($(window).width()-jQuery(this).width())/2);
		};
		if(options.vertical){
			if(options.useDefault){
				jQuery(this).css('top','30%');
			}else{
				jQuery(this).css('top',($(window).height()-jQuery(this).height())/2);
			}
		};
	});
}


jQuery.fn.showSuccess=function(data){
	return this.each(function(){
		jQuery(this).find('#suinner').html(data);
		jQuery(this).center().fadeIn();
		jQuery(this).oneTime(10000,function(){$(this).fadeOut();});
	});
}

$(document).ready(function(){
	window.name='mykaschdas';
	$.historyInit(pageload);
	if(userid>0){
		$('#loginer').css('display','none');
		$('#logouter').css('display','block');		
	}
	$('.menuitem').click(function(){
		navigate($(this).attr('id'),'');
	});
	$('#globalsearch').click(function(){
		startGlobalSearch();
	});
	$('#getnewsletter').click(function(){
		doAjax(servicegateway,'','registernl','&m='+$('#usermail').val()+'&c='+$('#usercat').val(),parseResult);
	});
	$('#globalsearchvalue').keypress(function(e){if(e.which==13){startGlobalSearch();}});
});

