<!--
/*
	javascript funktionen
	  Diggen

	M.A.B, 2007
	
	11-2007
	D.K. Voting-Erweiterung krone.tv
*/
	
	/*
		fügt in einem cookie weitere object_id's hinzu, berücksichtigt das limit des cookies(global_kmdig_limit	)
	*/
	function kmdig_append_cookie(kmdig_name, kmdig_value){
		if(kmdig_get_cookie_array(kmdig_name, kmdig_value)){
			return false;
		}
		
		temp = kmdig_get_cookie(kmdig_name);
		if(temp==null|| temp==''){
			kmdig_set_cookie(kmdig_name, kmdig_value);
			return true;
		} else {
			if(global_kmdig_limit > 0){
				newArray = kmdig_limit_array(temp.split(','), global_kmdig_limit);
				temp = newArray.join(',');
			}
			kmdig_set_cookie(kmdig_name,temp + ',' + kmdig_value);
			return true;
		}
	}

	// ist das limit erreicht wird die erste (älterste) object_id entfernt
	function kmdig_limit_array(myArray){
		newArray = new Array();
		count	=	myArray.length;
		from	= count - global_kmdig_limit;
		u			= 0;
		
		if(from <= 0){
			return 	myArray;
		}
				
		for (var i = from; i <count; ++i){
			newArray[u] = myArray[i];
			u++;
  	}
  	
  	return newArray;  	
	}
	
	//sucht die object_id im array
	function kmdig_get_cookie_array(kmdig_name, kmdig_value){
		if(kmdig_get_cookie(kmdig_name)==null){
			return false;
		}
		myArray = kmdig_get_cookie(kmdig_name).split(",");
		check = false;
		for (var i = 0; i < myArray.length; ++i){
  		if(myArray[i]==kmdig_value){
  			check = true;
  		}
  	}
		return check;
	}

	/*
		setzt das cookie, berücksichtigt expires (global_kmdig_default_cookie_timeout) und 
		den pfad (default:'/krone/S' + global_kmdig_sendung_id + '/object_id__' + global_kmdig_source_id + '/' + global_kmdig_packagename.toLowerCase() + '/';)
		kann mittels der global_kmdig_cur_path variable überschrieben werden
	*/
	function kmdig_set_cookie(kmdig_name,kmdig_value){

		kmdig_date=new Date();		
		kmdig_date_offset=new Date(kmdig_date.getTime()+global_kmdig_default_cookie_timeout);
		if(global_kmdig_cur_path !=''){
			pfad = global_kmdig_cur_path;
		}	else {
			pfad = '/krone/S' + global_kmdig_sendung_id + '/object_id__' + global_kmdig_source_id + '/' + global_kmdig_packagename.toLowerCase() + '/';
		}	

		document.cookie= kmdig_name+"="+escape(kmdig_value)+";path="+pfad+";expires="+kmdig_date_offset.toGMTString()+";";
		return true;
	}
	
	//ließt das cookie aus und gibt den wert zurück
	function kmdig_get_cookie (name) {
		var arg = name + "=";
		var a_length = arg.length;
		var c_length = document.cookie.length;
		var i = 0;
		while (i < c_length) {
			var offset = i + a_length;
			if (document.cookie.substring(i, offset) == arg) {
				var i_end = document.cookie.indexOf (";", offset);
				if (i_end == -1) {
					i_end = document.cookie.length;
				}
				return unescape (document.cookie.substring (offset,i_end));
			}
			i = document.cookie.indexOf (" ", i) +1;
			if (i == 0) break;
		}
		return null;
	}
	
	//wird beim bewerten aufgerufen, verhindert mehrmaliges bewerten
	function kmdig_doit(action_int, param){
		global_kmdig_responseText='';
		
		add_function='';
		if(typeof(param[5])!='undefined' && param[5]!=null){
			add_function=param[5];
		}
		
		switch (action_int) {	
		  case 1:
		  	if(global_kmdig_load){
		  		break;
		  	}
		  	if(kmdig_get_cookie_array("kmdig_diggs_" + param[3], param[0])){
		  		// wenn aufruf nicht über krone.tv voting package: meldung ausgeben (sonst kommen 2 alerts)
		  		if(param[3] != "kmwebtv") {
		  			//je nach global_kmdig_packagename meldung ausgeben
		  			if(global_kmdig_packagename != "kmwebtv") alert('Du hast bereits zugestimmt.');
		  			else {
		  				alert('Du hast bereits gevotet.');
						div_index = param[7];
		  				var avg = getAveragePoints(global_kmdig_target_count, global_kmdig_target_count_voting);
						
						// DIV mit den Sternen neu befüllen
						var div_elements = document.getElementsByName(param[1]+'_diggs_average');
						$(div_elements).rater('none.file', {maxvalue:global_voting_maxval, style: 'basic', curvalue:avg, obj:param[7], object_id:param[0]});
		  			}
		  		}
		  		break;
		  	}

		  	kmdig_xml(action_int , add_function + 'kmdig_sw_dig_it("'+ param[1] +'", ' + param[2] + ', ' + param[0] + ', "' + param[3] + '", ' + param[6] + ', '+param[7]+')', 'target_packagename=' + param[3] + '&target_object_id='+param[4] + '&voting_points='+param[6]);
				break;
				
			default:
					alert('Ein unbekannter Fehler ist aufgetreten.');
		}
	}

	//diese funktion wird nach der bewertung (ajax req) aufgerufen und stellt diese im frontend da
	function kmdig_sw_dig_it(obj, cnt, sid, target_packagename, voting_points, div_index){
		
		arr_return = global_kmdig_responseText.split('|status_kmdig_digit|');
		switch (arr_return[1]) {
			case '1':
			case '2':
				kmdig_append_cookie("kmdig_diggs_" + target_packagename, sid);				
				// normaler aufruf
				if(target_packagename != "kmwebtv") { 
					document.getElementById(obj + '_diggs').innerHTML = (cnt+1);
					global_kmdig_target_count = (cnt+1);
				}
				// wenn aufruf über krone.tv voting: hidden divs befüllen
				if(target_packagename == "kmwebtv") {
					//neue punktzahl schreiben
					global_kmdig_target_count_voting = (cnt+voting_points);
					
					//bewertungspunkte holen
					var avg = getAveragePoints(global_kmdig_target_count, global_kmdig_target_count_voting);
					
					// DIV mit den Sternen neu befüllen
					var div_elements = document.getElementsByName(obj+'_diggs_average');
					$(div_elements).rater('none.file', {maxvalue:global_voting_maxval, style: 'basic', curvalue:avg, obj:div_index, object_id:sid});
					
					// statusmessage schreiben
					document.getElementById("diggs_status").innerHTML = 'Danke!';
			
				}
				// wenn global_kmdig_packagename nicht kmwebtv, dann setze innerHTML in den divs
				if(global_kmdig_packagename != "kmwebtv") {
					if(typeof(global_kmdig_video_list)!='undefined'){
						document.getElementById(obj + '_diggs_list').innerHTML = (cnt+1);	
					}
					if((cnt+1)==1){
						document.getElementById(obj + '_diggs_txt').innerHTML = '&nbsp;Leser gefällt dieses Video';
					} else{
						document.getElementById(obj + '_diggs_txt').innerHTML = '&nbsp;Lesern gefällt dieses Video';
					}
					
					document.getElementById(obj + '_diggs_img').src = global_kmdig_img_path + 'zustimmen_dunkelgrau.gif';
				}
				return true;
				break;
			
			default:
				return false;
				break;
		}
	}

	//startet den ajax req auf kmdig_xml.hbs, berücksichtigt parallels aufrufen und verhindert dies.
	function kmdig_xml(action_int, myfunction, myparam){
		if(global_kmdig_load){
			return false;
		}				
		global_kmdig_load = true;
		var cur_time = new Date();
		newparam = '?cur_time=' + cur_time.getTime() + '&action='+global_kmdig_action_arr[action_int]+'&'+ myparam;

		var xmlHttp = null;
		if (typeof XMLHttpRequest != 'undefined') {
		    xmlHttp = new XMLHttpRequest();
		}
		if (!xmlHttp) {
		    try {
		        xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
		    } catch(e) {
		        try {
		            xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
		        } catch(e) {
		            xmlHttp  = null;
		        }
		    }
		}
		
		if (xmlHttp) {
		    xmlHttp.open('POST', global_kmdig_url_xml, true);
				xmlHttp.setRequestHeader("Pragma", "no-cache");
				//xmlHttp.setRequestHeader("Content-Type", "ISO-8859-1");
				xmlHttp.setRequestHeader("Content-length", newparam.length);
		    
		    xmlHttp.onreadystatechange = function () {
		        if (xmlHttp.readyState == 4) {
		        		//alert(xmlHttp.responseText);
					//alert(myfunction);

		        		if(myfunction!='') {
		        			global_kmdig_responseText=xmlHttp.responseText;
		        			if(eval(myfunction)){
		        				global_kmdig_load = false;	
		        			}
		        			global_kmdig_responseText='';
		        		}
		        }
		    };
		    //encodeURI()
		    global_kmdig_responseText='';
		    xmlHttp.send(newparam);
		    
		}
	}

	
//-->
