var isOpenshare = false;
var addGeotagFile = "http://www.kapsys.com/modules/movie/scenes/myKapsys/addGeotag.php";
var commentGeotagFile = "http://www.kapsys.com/modules/movie/scenes/openshare/geotag_comment.xml.php";
var delGeotagFile = "http://www.kapsys.com/modules/movie/scenes/myKapsys/delGeotag.php";
var delGeotagFile2 = "http://www.kapsys.com/modules/movie/scenes/openshare/delGeotag.php";
var shareGeotagFile = "http://www.kapsys.com/modules/movie/scenes/myKapsys/shareGeotag.php";
var importGeotagFile = "http://www.kapsys.com/modules/movie/scenes/openshare/importGeotag.php";
var maxWidthInfoWindowHtml = 400;

function dspKtag(lat, lon, ico, isDraggable)
{
	var icon = new GIcon(G_DEFAULT_ICON);
	var pt;
	icon.image = ico;	
	icon.iconSize=new GSize(32,32);
	icon.shadowSize=new GSize(60,32);
	icon.iconAnchor=new GPoint(14,32); //position de la croix en drag
	//icon.infoWindowAnchor=new GPoint(15,1);
	pt = (!lat || !lon ) ? map.getCenter() : new GLatLng(lat, lon);
	ktag = new GMarker(pt, {icon:icon, draggable: true});
	if(!isDraggable) ktag.disableDragging();	
	//**********************************************************************
	// MARKER ATTRIBUTES
	//**********************************************************************
	ktag.realId 	= "";
	// ktag.lat 		= lat;
	// ktag.lon 		= lon;
	ktag.rate 		= "";
	ktag.title 		= "";
	ktag.comment 	= "";
	ktag.author	 	= "";
	ktag.description= "";
	ktag.status 	= "";
	ktag.category 	= "";
	ktag.address 	= "";
	ktag.cp 		= "";
	ktag.city		= "";
	ktag.country	= "";
	ktag.keywords 	= "";
	ktag.picture 	= "";
	ktag.sound 		= "";
	
	ktag.initHtml	= "";
	ktag.txtHtml	= "";
	
	ktag.old		= "";
	ktag.creation 	= "";
	ktag.creationFormat 	= "";
	ktag.isNew 		= (!lat || !lon ) ?  1 : 0;
	//**********************************************************************
	// MARKER ACTION
	//**********************************************************************
	//====================================\SET DRAGSTART
	GEvent.addListener(
		 ktag
		,"dragstart"
		,function() {
			map.closeInfoWindow();
		}
	);
	//====================================/SET DRAGSTART
	
	
	//====================================\SET DRAGEND
	GEvent.addListener(
		 ktag
		,"dragend"
		,function() {
			var point = this.getPoint();
			reversegeocoder.reverseGeocode(point);	
		}
	);
	//====================================/SET DRAGEND
	
	//====================================\SET ONCLICK
	GEvent.addListener(		
		 ktag
		,"click"
		,function() {
			onTag=true;
			this.openInfoWindowHtml(this.initHtml, {maxWidth:maxWidthInfoWindowHtml});
		}
	);
	//====================================/SET ONCLICK
}
function goodReverseGeocoding(placemark)
{
	var address = "";	
	var localityname 				= reversegeocoder.getPlacemarkProperty(placemark,"LocalityName");
	var thoroughfarename 			= reversegeocoder.getPlacemarkProperty(placemark,"ThoroughfareName");	
	var postalcodenumber 			= reversegeocoder.getPlacemarkProperty(placemark,"PostalCodeNumber");
	var countrynamecode 			= reversegeocoder.getPlacemarkProperty(placemark,"CountryNameCode");	
	var administrativeareaname 		= reversegeocoder.getPlacemarkProperty(placemark,"AdministrativeAreaName");
	var subadministrativeareaname 	= reversegeocoder.getPlacemarkProperty(placemark,"SubAdministrativeAreaName");	
	var pt 	= reversegeocoder.getPlacemarkProperty(placemark,"Point");
	if(thoroughfarename)
		ktag.address 		= thoroughfarename;
	if(postalcodenumber)
		ktag.cp 			= postalcodenumber;
	if(localityname)
		ktag.city 			= localityname;
	if(countrynamecode)
		ktag.country 		= countrynamecode;
	map.panTo(ktag.getLatLng());
	afficheBulle(1);
}
function badReverseGeocoding()
{
	;
}

function getZipcode(placemark)
{
	var frm = $("formGeotagCreation");
	var postalcodenumber 			= reversegeocoder.getPlacemarkProperty(placemark,"PostalCodeNumber");
	if(postalcodenumber)
	{
		ktag.cp 			= postalcodenumber;
		frm.cp.value 		= postalcodenumber;
	}
}
function noZipcode()
{
	;
}

function getPositionFromAddress(){
	var frm = $('formGeotagCreation');
	adresse  = ( frm.address.value ) ? ","+frm.address.value+"" : "";
	adresse += ( frm.cp.value ) ? ","+frm.cp.value+"" : "";
	adresse += ( frm.city.value ) ? ","+frm.city.value+"" : "";
	adresse += ( frm.country.value ) ? ","+frm.country.value+"" : "";
	adresse = adresse.substring(1,adresse.length);
	geocoder.getLocations (
			 adresse
			,function(response) {	
				var frm = $('formGeotagCreation');
				if (!response || response.Status.code != 200) {
					alert(adresse + " not found");
				} else {
					place = response.Placemark[0];
					point = new GLatLng(place.Point.coordinates[1],place.Point.coordinates[0]);
					frm.lat.value = point.y;//=============> update la position du geotags
					frm.lon.value = point.x;
					frm.country.value = place.AddressDetails.Country.CountryNameCode;
					ktag.setPoint(point);
					getFormGeotagCreationValues();
					afficheBulle(11);   
				}
			});
}

function checkFieldsKtag(n)
{
	var frm = $('formGeotagCreation');
	var adresse;
	if(n==1)
	{
		if(!frm.address.value || !frm.cp.value || !frm.city.value) 
		{
			alert("Please Enter an address, a zip code and a city name");
		}
		else
			if( chckzipcode() )
				getPositionFromAddress();
	}
}

function chckzipcode()
{
	var frm = $('formGeotagCreation');
	if(frm.cp.value.length && !frm.cp.value.match(filterZip))
	{
		alert("Invalid Zip code. \nOnly alphanumeric characters are allowed (no spaces)\nA valid zipcode is between 3 and 5 characters\n");
		return false;
	}
	return true;
}

//==================================================
// AFFICHAGE DU RATE
//==================================================
function dsp_rating(rate, style)
{
	rate = (rate)?rate:0;
	var dsp_rate = '<ul class="kaps-rating" '+style+'>';
	for(var j=0;j<5;j++)
	{
		etat = (j>=rate) ? "two":"one";											
		dsp_rate += '<li><a class="'+etat+'-kaps" id="one-kaps">&nbsp;</a></li>';
	}
	dsp_rate += '</ul>';
	return dsp_rate;
}

//==================================================
// SAUVEGARDE DU KTAG
//==================================================
function saveGeotag(e)
{
	var frm = $('formGeotagCreation');
	var err ='';
	switch(e)
	{
		case 1:			
			var filterName = /^[éèçàâêûîôùëïöäüA-Za-z0-9_ -']+/;
			if(!frm.name.value) 											err 		+= "Field name empty\n";
			if(frm.name.value.length && !frm.name.value.match(filterName))	err 		+= "Forbidden characters in name field\n";
			if(frm.keywords.value.length && !frm.keywords.value.match(filterName))	err += "Invalid field keyword : the keywords must not content any special character.\n";
			if(!frm.category.value) 										err 		+= "Select a category\n";
			if(frm.comment.value && frm.comment.value.length>250) 			err 		+= "250 characters max for the comment\n";
			if(!err)
			{
				getFormGeotagCreationValues();
				frm.target = 'if_upload_target';
				frm.submit();
			}
			else
				alert(""+err);	
		break;
		
		case 2:
			if(frm.comment.value && frm.comment.value.length>250) 			err 		+= "250 characters max for the comment\n";
			if(!err)
			{
				getFormGeotagCreationValues();
				frm.category.value=ktag.category;
				frm.target = 'if_upload_target';
				frm.submit();
			}
			else			
				alert(""+err);
		break;
	}
}

//==================================================
// DISPLAY BTN EDIT AND INFOS
//==================================================
function textArroundMap(dspnumber)
{
	var mark = ktag;
	var str_sound;
	var str_city;
	if(dspnumber == "edition")
	{
		var flash = '<embed type="application/x-shockwave-flash" src="http://www.kapsys.com//public/media/mp3player.swf" wmode="transparent" scale="noscale" id="line" name="line" quality="high" flashvars="file='+sounduserpath+mark.sound+'&amp;repeat=false&amp;showdigits=false&amp;showdownload=false&amp;width=240&amp;height=20" height="20" width="30"/>';
		str_sound = (mark.sound) ? flash : '';
		str_city = (mark.city) ? ' &agrave; '+ mark.city : '';
		$('geotagsInfo').innerHTML = '<table border="0" cellpadding="0" cellspacing="0"><tr><td valign="bottom" height="26">Ktag created on<b>' + mark.creationFormat + ' ' + str_city +'</b> </td><td valign="middle">'+str_sound+'</td></tr></table>' ;
		if(mark.old == 'news')
		{
			$('btnTagEdition').innerHTML = '<table width="530"><tr><td align="center"><a title="Delete" href="#" onclick="if(confirm(\'Are you sure to delete this Ktag ?\')){delTag('+mark.index+')}return false;"><table border="0" cellspacing="0" cellpadding="0" style="cursor:pointer; text-align:left; width:100px;"><tr><td style="background:transparent url(/modules/movie/images/btn/btn07_01.gif) left top no-repeat;width:10px;">&nbsp;</td><td style="background:transparent url(/modules/movie/images/btn/btn07_02.gif) left top repeat-x;height:25px;"><div style="text-align:center; margin:0 0 5px 0;"><span style="font:bold 14px arial;">Delete</span></div></td><td style="background:transparent url(/modules/movie/images/btn/btn07_03.gif) right top no-repeat;width:10px;">&nbsp;</td></tr></table></a></td></tr></table>';
		}
	}
	if(dspnumber == 'display')
	{
		dspInfosKtag();

		//if(mark.status != 'shared')
			}	
}
function dspInfosKtag()
{
	var str  = '<table border="0" cellpadding="0" cellspacing="0" width="520"><colgroup><col width="320"/><col width="200"/></colgroup><tr><td valign="middle" height="26">';
	str += (ktag.category) ? '<b>Category :</b> '+ktag.category+' <br />' : '' ;
	str += (ktag.title) ? '<big class="textPurple">'+ktag.title+'</big><br />' : '';
	str += (ktag.address || ktag.cp || ktag.city) ? '<b>'+ktag.address+' '+ktag.cp+' '+ktag.city+'</b><br />' : '';
	str += (ktag.creation) ? 'Created on '+ktag.creationFormat : '';
	
	var status = (ktag.status=='public')?'public':'private';
	str += (ktag.status) ? ' - '+status+'' : '';
	str += '</td>';
	str += '<td valign="right" valign="bottom"><table><tr><td>Global rating : </td><td>'+dsp_rating(ktag.rate)+'</td></tr></table></td></tr></table>';
	$('geotagsInfo').innerHTML = str;
}
//==================================================
// BTN EDIT
//==================================================
function editTag() {
	afficheBulle(1)
	ktag.enableDragging();
}
//==================================================
// BTN DEL
//==================================================
function delTag() {
	
	if(!isOpenshare )
	{
		var file = delGeotagFile
		typeAction = "delTag";
	}
	else
	{
		var file = delGeotagFile2
		typeAction = "delTag2";
	}
	makeRequest(file, 'idTag='+ktag.realId+'&userId=');
	deleteMarker();
	$('geotagsInfo').innerHTML = '';
	$('btnTagEdition').innerHTML = '';	
}
function deleteMarker() 
{      
	mm.removeMarker(ktag);
}
//==================================================
// MISE A JOUR DU KTAG DEPUIS LE FORM
//==================================================
function getFormGeotagCreationValues()
{	
	var frm = $('formGeotagCreation');
	if( frm )
	{
		ktag.title 		= frm.name.value;
		ktag.comment 	= (frm.comment.value) ? frm.comment.value : ktag.comment;
		if( frm.status.length )
		{
			ktag.status 	= ( frm.status[0].checked ) ? "private" : "";
			ktag.status 	= ( frm.status[1].checked ) ? "public" : "private";
		}
		else
			ktag.status = "public";
		//ktag.category 	= (frm.category.value) ? frm.category.value : ktag.category;
		ktag.keywords 	= (frm.keywords.value) ? frm.keywords.value : ktag.keywords;
		ktag.creation 	= frm.date.value;
		ktag.address 	= frm.address.value;
		ktag.cp 		= frm.cp.value;
		ktag.city 		= frm.city.value;
		ktag.country 	= frm.country.value;
	} 
}

function dsp_sendMail( id )
{
	if( submitForm('formSendTagToFriend') )
	{
		var marker = ktag;
		typeAction="";
		var email = $('formSendTagToFriend').email.value;
		var name = $('formSendTagToFriend').name.value;
		typeAction = "sendTag";
		if( !isOpenshare )
			sendRequest('/modules/movie/scenes/myKapsys/act_send_ktag.php', 'tagId='+marker.realId+'&userId=&email='+email+'&name='+name);
		else
			sendRequest('/modules/movie/scenes/openshare/act_send_ktag.php', 'tagId='+marker.realId+'&userId=&email='+email+'&name='+name);
		afficheBulle(33);
	}
}
function sendTag(xmlobj)
{
	;//window.parent.location.href = '/modules/movie/scenes/myKapsys/index.php?fuseAction=news';
}

//===================================================================================================================================================
// OPENSHARE
//===================================================================================================================================================
function getComments(index) {
	typeAction="getComments";
	sendRequest(commentGeotagFile, 'id=&tagId='+ktag.realId+'&index='+index);	
}


function loadCommentsFromXML(xmlDoc){
	var username = '';
	var commentaire = '';
	var note = '';
	var date = '';
	var usercity = '';
	var dsp_rate = fdsp_rate(5);
	var html = dsp_formAddCom( dsp_rate );
	try{	
		var mycomment = xmlDoc.documentElement.getElementsByTagName("mycomment");
		if(mycomment.length)
		{
			var index = mycomment[0].getAttribute("index");
			var tagId = mycomment[0].getAttribute("tagId");		
			var rate = parseInt(mycomment[0].getAttribute("rate"));	
	
			var dsp_rate = dsp_rating(rate);
			var html = '<div style="width:370px;height:100px;overflow-y: auto;">';	
			html += '&nbsp;<img src="/modules/movie/images/fr/arrow_purple.png" /> <b>Author review : </b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';	
			html += '<table style="width:350px;border:1px solid #B82F88;"><colgroup><col width="auto"/><col width="50"/></colgroup><tr>';
			html += '<td>'+ktag.author+' ('+ktag.city +' '+ktag.creationFormat  +')</td>';
			var commmm = (ktag.comment)?'&laquo;'+ktag.comment+'&raquo':'No comment';
			html += '<td>'+dsp_rate+'</td></tr><tr><td colspan="2" align="center"><b>'+commmm+'</b></td></tr></table>';
			html += '<table style="width:350px;" border="0"><colgroup><col width="auto"/><col width="50"/></colgroup><tr><td colspan="2"><img src="/modules/movie/images/fr/arrow_purple.png" /> <b>Opinion :</b></td></tr>';
			try{comments = xmlDoc.documentElement.getElementsByTagName("comment");} catch(e) {alert(e);}

			if( comments )
			{
				nocomment = false;
				for (var i = 0; i < comments.length; i++) 
				{
					username = (tryGetElement("username", comments[i]));
					commentaire = (tryGetElement("text", comments[i]));
					note = (tryGetElement("rating", comments[i]));
					date = (tryGetElement("creation", comments[i]));		
					usercity = (tryGetElement("usercity", comments[i]));		

					var dsp_rate = '<ul class="kaps-rating">';
					for(var j=0;j<5;j++)
					{
						etat = (j>=note) ? "two":"one";
						dsp_rate += '<li><a class="'+etat+'-kaps" id="one-kaps">&nbsp;</a></li>';
					}
					dsp_rate += '</ul>';
					
					html += '<tr><td>'+username+' ('+usercity+' '+date+')</td><td>'+dsp_rate+'</td></tr>';
					if(commentaire)
						html += '<tr><td colspan="2" align="center"><b>&laquo;'+commentaire+'&raquo;</b></td></tr>';
					else
						html += '<tr><td colspan="2" align="center">&nbsp;</td></tr>';
				}
			}

			html += '</table></div>';
			ktag.openInfoWindowHtml(html, {maxWidth:maxWidthInfoWindowHtml});
		}
		else
		{
			//FIREFOX
			ktag.openInfoWindowHtml(html, {maxWidth:maxWidthInfoWindowHtml});
		}
	} catch(e) {
		//IE7
		ktag.openInfoWindowHtml(html, {maxWidth:maxWidthInfoWindowHtml});
	}
}
//==================================================
// AFFICHAGE DU FORMULAIRE RATE
//==================================================
function fdsp_rate(n)
{
	var dsp_rate = '<ul class="kaps-rating" style="border:0px solid;margin:0 0 0 25px;padding:0;">';
	etat = "two";
	for(var j=0;j<n;j++)
	{
		dsp_rate += '<li><a class="'+etat+'-kaps" id="'+j+'-kaps" onmouseover="onRate('+j+')">&nbsp;</a></li>';
	}
	dsp_rate += '</ul>';
	return dsp_rate;
}
//==================================================
// HTML DU FORMULAIRE POUR COMMENTAIRE
//==================================================
function dsp_formAddCom( dsp_rate )
{
	var html = '<div style="width:370px;height:120px;overflow:hidden;overflow-y: auto;">';	
	html += '<form id="formAddComment" method="post" action="addComment.php">';
	html += '<table width="345"><tr><td><img src="/modules/movie/images/fr/arrow_purple.png" /> <b>Your comment :</b></td><td>'+dsp_rate+'</td></tr></table>';
	html += '<textarea id="myCommentaire" name="myCommentaire" style="width:345px;height:55px;border:1px solid #B82F88;" onkeyup="maxTextarea(this, \'\', 255)"></textarea>';
		html += '<input type="button" value="Publish" onclick="alert(\'You are not connected;\')"/>';
		html += '</form>';
	html += '</div>';
	return html;
}
//==================================================
// GET RATE
//==================================================
var myRate = 0;
function onRate(i)
{
	for(var j=0;j<5;j++) {
		$(j+'-kaps').className="two-kaps";
	}
	i++;
	for(var j=0;j<i;j++) {
		$(j+'-kaps').className="one-kaps";
	}
	myRate = i;
}
//==================================================
// AFFICHAGE DU FORMULAIRE POUR COMMENTAIRE
//==================================================
function dsp_bulle_form_comm()
{
	ktag.openInfoWindowHtml( dsp_formAddCom( fdsp_rate(5) ) );
}
//==================================================
//IMPORT
//==================================================
function gimport()
{
	var input3 = document.createElement('input');
	input3.setAttribute('name', 'id');
	input3.setAttribute('type', 'hidden');
	input3.setAttribute('value', ktag.realId);
	
	var frm = $('import');
	frm.appendChild(input3);
	frm.target = 'if_upload_target';
	frm.submit();
	displayMessage('dsp_importOk.php',240,150);
}
//==================================================
//SAVE COMMENT AND RATE
//==================================================
function saveMyComment(id)
{
	var comment = $(id).value;
	var theRate = myRate;
	
	var input2 = document.createElement('input');
	input2.setAttribute('name', 'rate');
	input2.setAttribute('type', 'hidden');
	input2.setAttribute('value', theRate);
	
	var input3 = document.createElement('input');
	input3.setAttribute('name', 'id');
	input3.setAttribute('type', 'hidden');
	input3.setAttribute('value', ktag.realId);
	
	var frm = $('formAddComment');
	frm.appendChild(input2);
	frm.appendChild(input3);
	frm.target = 'if_upload_target';
	frm.submit();
	
}
//==================================================
// DELETE FILES
//==================================================
function eraseFile(t)
{
	typeAction="eraseFile";
	sendRequest(actEraseFile, 'id=&tagId='+ktag.realId+'&type='+t);
	if(t=='picture')
	{
		$('picFile').style.display = 'none';
		$('picBtn').style.display = 'none';
	}
	if(t=='sound')
	{
		$('soundFile').style.display = 'none';
		$('soundBtn').style.display = 'none';
	}
}
//==================================================
// BTNSHARE
//==================================================
function shareTag(i) {
	if(confirm("Sharing this Ktag will copy it in the public OpenShare database. This Ktag will therefore be available to all the community members. Do you confirm sharing ?"))
	{
		typeAction = "shareTag";
		makeRequest(shareGeotagFile, 'idTag='+i+'&userId=');
		$('kattr'+i).innerHTML = 'public';
		$('btnShare'+i).innerHTML = '';
		if($('nbPublic'))
		{
			var nbPublic = parseInt($('nbPublic').innerHTML);		
			$('nbPublic').innerHTML = nbPublic+1;
		}
		alert('Warning : this Ktag will now be shared with the members of the Openshare community');
	}
}