function validateCard(ref){
	new Ajax.Request('ajax/validateCard.php',
		{
			method: 'post',
			asynchronous: true,
			evalScript: true,
			postBody: 'ref='+ref+"", //"+front,
			onComplete: function(u) {
				$('validate_status').update(u.responseText);
			}
		}
	);
}
function textsplit(text,mxlen){
	var woerter=text.split(" ");
	//alert(woerter);
	var rtn="";
	var lnum=0;
	var wort;
	anf=false;
	for(var iw=0;iw<woerter.length;iw++){
		wort=woerter[iw];
		var vglstr=rtn+" "+wort;
		if(vglstr.length<mxlen) {
			if(anf) rtn+=" "+wort;
			else rtn+=wort;			
			anf=true;
		}
		else {
			if(wort.length>mxlen) {
				// das wort ist zu lang für die zeile!!!
				for(var il=0;il<(wort.length/mxlen);il++){
					rtn+="\n"+wort.substr((il*mxlen),mxlen);
				}
			}else{
				// neue zeile...
				rtn+="\n"+wort;
			}
		}
	}
	return rtn;
}

function updCounters(element,prefix,max_chars,max_lines,linebreak){
	
	
	var linecount=$(prefix+'line_count');
	var charcount=$(prefix+'char_count');
	//alert(element);
	var org_text=element.value;
	var text_len=org_text.replace("\n","").length;
	if(text_len > max_chars){
		var newVal="";
		
		for(var i=0;i<max_chars;i++){
			newVal+=org_text[i];
			linecount++;
			if(org_text[i]!="\n"){
				if(linecount>linebreak){
					newVal+="\n";
					linecount=0;
				}
			}
			else linecount=0;
			
		}
		element.value=newVal;
	}
	/*
	// zeilenumbrüche einfügen
	var lcounter=0;
	var newVal="";
	for(var i=0;i<text_len;i++){
		newVal+=element.value[i];
		lcounter++;
		if(element.value[i]!="\n"){
		if(lcounter>=linebreak && element.value.length+2>linebreak){
			newVal+="\n";
			lcounter=0;
		}
		}
		else lcounter=0;
		
	}
	element.value=newVal;
		*/
	var lines=element.value.split("\n");
	/*
		for(var j=0;j<max_lines;j++){
			//lines[j]=
			newVal+=textsplit(lines[j],linebreak);
			if(j!=(max_lines-1)) newVal+="\n";
		}*/	
	var newVal="";
	/*for(var j=0;j<max_lines;j++){
		if(lines[j]) {
			newVal+=textsplit(lines[j],linebreak+1);	
			//alert(newVal);
			// zeilenumbruch immer am ende egal ob überhaupt genug
			//alert(lines[j].length);
			if(j!=(max_lines-1) && (((element.value.length-(linebreak*(j+1))>0)))) newVal+="\n";
		} else if(j==(lines.length-1)) newVal+="\n";
	}		
	element.value=newVal;*/
	/*if(lines.length > max_lines){
		var newVal="";
		for(var j=0;j<max_lines;j++){
			newVal+=textsplit(lines[j],linebreak);	
			if(j!=(max_lines-1)) newVal+="\n";
		}		
		element.value=newVal;
	}*/
	
	charcount.update(element.value.replace("\n","").length+" / "+max_chars);
	linecount.update(element.value.split("\n").length+" / "+max_lines);
}

function usercardUpload(){
	var ucform=$('usercardForm');
	var ucresult=$('ucResult');
	ucresult.update("<div align='center'><img src='images/loading.gif'></div>");
	/*new Ajax.Request('ajax/usercardUpload.php',
			{
				method: 'post',
				asynchronous: true,
				evalScript: true,
				postBody: ucform.serialize(),
				onComplete: function(t) {
					ucresult.update(t.responseText);
				},
				onFailure: function(t) {
					ucresult.update(t.status+' -- '+t.statusText);
				}
			}
		);	*/
}

var typ;
function blaettern(steps){
	
	/*
	hier funzt was nicht...array positionen in JS und PHP sind nicht gleich!
	*/
	//alert(current_card+ " - "+cards_available[current_card] + " > " + steps + " = " + (current_card+steps)+"\n"+cards_available);
	current_card+=steps;
	if(current_card<0){
		current_card+=cards_available.length;
	}
	if(current_card>=cards_available.length){
		current_card-=cards_available.length;
	}
	//alert(current_card+ " - "+cards_available[current_card]);
	viewCard(cards_available[current_card]);
}
function viewCard(cid){
	//$('gray_overlay').show();
	if($('card_front')) current="front";
	if($('card_rear')) current="rear";
// muss FRONT GESETZT SEIN!!!		if(viewCard.arguments[1]
	//if($('card_'+current)){
	if($('swf_karte')){
		new Ajax.Request('ajax/cardfile.php',
			{
				method: 'post',
				asynchronous: true,
				evalScript: true,
				postBody: 'cid='+cid+"", //"+front,
				onComplete: function(t) {
					if(t.responseText=="404") { 
					if(viewCard.arguments.length==1) location.href="?kat=1&cid="+cid; //+"&typ=rear"; 
					else alert(cid);
					}
					else if(t.responseText!=""){ 
					//$('sleepcounter').update('FOUND!!!'); 
					new Ajax.Request('ajax/swf.php',
						{
							method: 'post',
							asynchronous: true,
							evalScript: true,
							postBody: 'card='+t.responseText+"", //"+front,
							onComplete: function(u) {
								$('swf_karte').update(u.responseText);
							}
						}
					);
					/*$('card_'+current).src=t.responseText;
					$('card_'+current).attributes["onclick"].value="turnCard("+cid+");";
					$('card_'+current).id="card_front";
					*/
					//$('gray_overlay').hide();
					
					//current_card=cid;
					}
				},
				onFailure: function(t) {
					location.href="?kat=1&cid="+cid+"&typ=rear";
					//alert('Verbindungsfehler\n\n'+t.status+' -- '+t.statusText);	
					 //var new_img;
					//$('gray_overlay').hide();
				}
			}
		);	
		
	}else location.href="?cid="+cid;
	//}else location.href="?kat=1&cid="+cid+($('card_front')?"&typ=rear":"");
}
var new_img;
var current;
var sleepcounter=0;
var wait;
function turnCard(cid){
	$('gray_overlay').show();
	if($('card_front')) current="front";
	if($('card_rear')) current="rear";
	if($('card_'+current)){
	new Ajax.Request('ajax/cardfile.php',
		{
			method: 'post',
			asynchronous: true,
			evalScript: true,
			postBody: 'cid='+cid+"&typ="+($('card_front')?"rear":""),
			onComplete: function(t) {
				if(t.responseText=="404") { location.href="?kat=1&cid="+cid+($('card_front')?"&typ=rear":""); }
				else if(t.responseText!=""){ 
				$('sleepcounter').update('FOUND!!!'); 
				$('card_'+current).src=t.responseText;
			    $('card_'+current).id='card_'+($('card_front')?'rear':'front');
				$('gray_overlay').hide();
				}
			},
			onFailure: function(t) {
				//alert(t.responseText);
				location.href="?kat=1&cid="+cid+($('card_front')?"&typ=rear":"");
				$('gray_overlay').hide();
				//alert('Verbindungsfehler\n\n'+t.status+' -- '+t.statusText);	
				 //var new_img;
			}
		}
	);
	}
	
	//cardfile(cid,($('card_front')?"rear":""));
	//alert(typeof new_img );
	/*while(typeof new_img === 'undefined') {
		
		//pause(100);	
		sleepcounter+=1;
	}*/
	//alert(new_img);
	//wait=window.setInterval("updateCard();",500);
	
	//alert(new_img); 
	
	//else location.href="?kat=1&cid="+cid+($('card_front')?"&typ=rear":"");
}
function updateCard(img){
	if(new_img){
		
		if(new_img!=404){
			element.src=new_img;
			if(switch_id) element.id='card_'+($('card_front')?'rear':'front');
		} else { alert("zu lange..."); }
		alert(new_img);
		clearInterval(wait);
    }else{
		if(sleepcounter>15000) { clearInterval(wait); new_img=404; sleepcounter=0; }	
		sleepcounter+=500;
		$('sleepcounter').update(sleepcounter);
	}
}

function pause(numberMillis) {
 var now = new Date();
 var exitTime = now.getTime() + numberMillis;
  while (true) {
   now = new Date();
   if (now.getTime() > exitTime)
    return;
   }
  }
function cardfile(cid,typ){
	new Ajax.Request('ajax/cardfile.php',
		{
			method: 'post',
			asynchronous: true,
			evalScript: true,
			postBody: 'cid='+cid+"&typ="+typ,
			onComplete: function(t) {
				if(t.responseText!=""){ $('sleepcounter').update('FOUND!!!'); new_img=t.responseText; }
				else {  var new_img;  }
			},
			onFailure: function(t) {
				//alert('Verbindungsfehler\n\n'+t.status+' -- '+t.statusText);	
				 var new_img;
			}
		}
	);	
}
function resizeNavi(){
	var navi_cell=$('navicell');
	var navi_swf=$('swfnavi');
	var dimensions=navi_cell.getHeight();
	//alert(dimensions);
	navi_swf.style.height=dimensions+"px";
	//alert(navi_swf.getHeight());
}

function getPageScroll(){

	var yScroll;

	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
		yScroll = document.documentElement.scrollTop;
	} else if (document.body) {// all other Explorers
		yScroll = document.body.scrollTop;
	}

	arrayPageScroll = new Array('',yScroll) 
	return arrayPageScroll;
}


function getPageSize(){
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight =  yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}


	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}

