// JavaScript Document
var http = createRequestObject();
var type = '';
var globalFormCheck=true;

  function createRequestObject() {
    var request_o;
    try {
	   request_o = new XMLHttpRequest();
	  }
	  catch (error) {
	    try {
	      request_o = new ActiveXObject("Microsoft.XMLHTTP");
	    }
	    catch (error) {
	      try {
	        reuest_o = new ActiveXObject("Msxml2.XMLHTTP");
	      }
	      catch (error) {
	        return false;
	      }
	    }
	  }
	  if (request_o==null) {
         alert("Your browser doesn't support AJAX.");
         return false 
	  }
	  else {
	    return request_o;
	  }
	}
	
	function getCommunitiesByRegion(regionid) {
    var mytime= '&ms=' + new Date().getTime();
		type='communities';
		var request='/ajax/getCommunitiesByRegion.php?r=' + regionid + mytime;
      
    if (type != "") {
			if (http.readyState != 0) {
	      http.onreadystatechange=function () {}
		    http.abort();
  	  }
      http.open('get', request, true);
      http.onreadystatechange = handleajax;
	    http.send(null);
    }
  }
	
	function handleajax() {
	  if(http.readyState == 4){
	  	var parentElement = document.getElementById(type);
		  try {
        parentElement.innerHTML = http.responseText;
      }
      catch (error) {
        var wrappingDiv = document.createElement('div');
        wrappingDiv.innerHTML = http.responseText;
        parentElement.appendChild(wrappingDiv);
      }
	  }
  }
	
	function selectLang() {
		var url=location.href;
		document.languageform.action=url;
		document.languageform.submit();
	}

	function isempty(str) {
	  if (str.replace(/^\s*|\s*$/g,"") == "") {
	    return true;
	  }
	  else {
	    return false;
	  }
	}
	
	function trim (mystring) {
    return mystring.replace (/^\s+/, '').replace (/\s+$/, '');
  }

	
	function chooseLang() {
		var mySelect=document.getElementById('languageselect');
		if (mySelect.style.display != 'block') {
			mySelect.style.display='block';
		}
		else {
			mySelect.style.display='none';
		}
	}
	
	function setLang(mylang) {
		var myloc=location.href.toString();
		if (mylang != '') {
			var result=myloc.search(/\?/);
			if (result != -1) {
			  location.href=location.href + '&lang=' + mylang;
			}
			else {
				location.href=location.href + '?lang=' + mylang;
			}
		}
		else {
			location.href=location.href + 'index.php?lang=si';
		}
	}
	
	function doSubmitForm(name) {
		if (globalFormCheck==true) {
			document.getElementById(name).submit();
		}
	}
	
function check_field(rfield,type) {
  var checked=false;
	var myfield=document.getElementById(rfield);
	if (type == 'email') {
	  checked=true;
		var expr=/^[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,4}$/;
		var mystring=myfield.value;
	}
	if (type == 'text') {
	  checked=true;
		var expr=/^[\w\u00c0-\u017E\s\-_\.,]+$/;
		var mystring=myfield.value;
	}
	if (type == 'number') {
	  checked=true;
		var expr=/^\d+$/;
		var mystring=myfield.value;
		
	}
	if (type == 'password') {
	  checked=true;
		var expr=/^[\w\d\u00c0-\u017E]+$/;
		var mystring=myfield.value;
		
	}
	if (type == 'password2') {
	  checked=true;
		var expr=/^(\s*)|([\w\d\u00c0-\u017E])+$/;
		var mystring=myfield.value;
		
	}
	if (type == 'street') {
	  checked=true;
		var expr=/^[\u00c0-\u017E\w\d\s.\-,;]+$/;
		var mystring=myfield.value;
	}
	if (type == 'phone') {
	  checked=true;
		var expr=/^\+?[\d\s]+$/;
		var mystring=myfield.value;
	}
	if (type == 'captcha') {
	  checked=true;
		var expr=/^[\d\w]+$/;
		var mystring=myfield.value;
	}
	var ok=false;
	
	if (checked == true) {
		if (mystring.match(expr)) {
			ok=true;
		}
		else {
			ok=false;
		}
		
		if (rfield.match(/2$/)) {
			var f1=rfield.substr(0,(rfield.length - 1));
			if (document.getElementById(f1).value == document.getElementById(rfield).value) {
				ok=true;
			}
			else {
				ok=false;
			}
		}
		
		if (ok == true && rfield == 'r_email') {
			checkUsername(document.getElementById(rfield).value);
	  }
		
	  if (ok == true) {
		  if (document.getElementById(rfield+'_nok') != null && document.getElementById(rfield+'_ok') != null) {
		    document.getElementById(rfield+'_nok').style.display='none';
			  document.getElementById(rfield+'_ok').style.display='block';
			}
			myfield.style.backgroundColor='#FFFFFF';
			globalFormCheck=true;
		  return true;
		}
		else {
			if (document.getElementById(rfield+'_nok') != null && document.getElementById(rfield+'_ok') != null) {
		    document.getElementById(rfield+'_ok').style.display='none'; 
		    document.getElementById(rfield+'_nok').style.display='block';
			}
			myfield.style.backgroundColor='#FFA6A6';
			globalFormCheck=false;
			var msg=document.getElementById('MSG_' + rfield);
			if (msg != null) {
				usermessage(document.getElementById('MSG_' + rfield).innerHTML);
			}
			return false;
		}
	}
}

function checkSubmit(fields) {
	var flist=fields.split("#");
	var asize=flist.length - 1;
	var checked=false;
	if (flist.length > 0) {
		for (i=0;i<=asize;i++) {
			var arg=flist[i];
			var aArg=arg.split(",");
			if (check_field(aArg[0],aArg[1])) {
				checked=true;
			}
			else {
				checked=false;
				return false;
			}
		}
	}
	if (checked==true) {
		return true;
	}
}

function usermessage(message) {
	if (message!='') {
		revealModal(message);
	}
}

function checkUsername(username) {
  var mytime= '&ms=' + new Date().getTime();
	type='communities';
	var request='/ajax/checkUsername.php?name=' + username + mytime;
      
  if (type != "") {
		if (http.readyState != 0) {
      http.onreadystatechange=function () {}
	    http.abort();
		}
    http.open('get', request, true);
    http.onreadystatechange = handleCheckUsername;
    http.send(null);
  }
}
	
function handleCheckUsername() {
  if(http.readyState == 4){
  	if (http.responseText == 'ERR') {
			
		}
		else {
		  if (http.responseText == 'FREE') {
			  if (document.getElementById('r_email_nok') != null && document.getElementById('r_email_ok') != null) {
		      document.getElementById('r_email_nok').style.display='none';
			    document.getElementById('r_email_ok').style.display='block';
			  }
			  document.getElementById('r_email').style.backgroundColor='#FFFFFF';
				if (document.getElementById('nametaken').style.display!='none') {
				  document.getElementById('nametaken').style.display='none';
				}
			}
		  if (http.responseText == 'TAKEN') {
			  if (document.getElementById('r_email_nok') != null && document.getElementById('r_email_ok') != null) {
		      document.getElementById('r_email_nok').style.display='block';
			    document.getElementById('r_email_ok').style.display='none';
			  }
			  document.getElementById('r_email').style.backgroundColor='#FFA6A6';
				// EMAIL IS ALREADY TAKEN!!!
				document.getElementById('nametaken').style.display='inline';
		  }
		}
  }
}

function imageFactory(id,action,num) {
  var mytime= '&ms=' + new Date().getTime();
	type='imagefactory';
	var request='/ajax/imageFactory.php?id=' + id + '&a=' + action + '&num=' + num  + mytime;
      
  if (type != "") {
		if (http.readyState != 0) {
      http.onreadystatechange=function () {}
	    http.abort();
		}
    http.open('get', request, true);
    http.onreadystatechange = handleIF;
    http.send(null);
  }
	if (action=='delete') total=total - 1;
}

function handleIF() {
  if(http.readyState == 4){
		var parentElement = document.getElementById(type);
	  try {
			parentElement.innerHTML = http.responseText;
    }
    catch (error) {
      var wrappingDiv = document.createElement('div');
			wrappingDiv.innerHTML = http.responseText;
      parentElement.appendChild(wrappingDiv);
    }
	}
}

function addToFavList(id) {
  var mytime= '&ms=' + new Date().getTime();
	type='favlist_' + id;
	var request='/ajax/addToFavList.php?id=' + id + mytime;
      
	if (type != "") {
		if (http.readyState != 0) {
      http.onreadystatechange=function () {}
	    http.abort();
		}
    http.open('get', request, true);
    http.onreadystatechange = handleFavList;
		http.send(null);
		document.getElementById(type).style.display='inline';
  }
}
	
function handleFavList() {
    if (http.readyState == 4) {
			document.getElementById(type).style.display='none';
		  // var parentElement = document.getElementById(type);
	    /*
		
		  try {
			  parentElement.innerHTML = http.responseText;
      }
      catch (error) {
        var wrappingDiv = document.createElement('div');
		  	wrappingDiv.innerHTML = http.responseText;
        parentElement.appendChild(wrappingDiv);
      }
		
		*/
	}
}

function revealModal(popmessage)
{   
    var divID='modalPage';
    // window.onscroll = function () { document.getElementById(divID).style.top = document.body.scrollTop; };
		document.getElementById('pmodaltext').innerHTML=popmessage;
    document.getElementById(divID).style.display = "block";
    document.getElementById(divID).style.top = document.body.scrollTop;
}

function hideModal(divID)
{
    document.getElementById(divID).style.display = "none";
}

function limitchars(tarea,limit) {
	if (tarea.value.length >= limit) {
		tarea.value=tarea.value.substring(0,limit);
	}
	var remaining=limit - tarea.value.length;
	document.getElementById('limitcounter').innerHTML='<strong>' + remaining + '</strong>';
}

function JSGetSwfVer(i){
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
      		var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			descArray = flashDescription.split(" ");
			tempArrayMajor = descArray[2].split(".");
			versionMajor = tempArrayMajor[0];
			versionMinor = tempArrayMajor[1];
			if ( descArray[3] != "" ) {
				tempArrayMinor = descArray[3].split("r");
			} else {
				tempArrayMinor = descArray[4].split("r");
			}
      		versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
            flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
      	} else {
			flashVer = -1;
		}
	}
	// MSN/WebTV 2.6 supports Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 supports Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// older WebTV supports Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	// Can't detect in all other cases
	else {
		
		flashVer = -1;
	}
	return flashVer;
} 
// If called with no parameters this function returns a floating point value 
// which should be the version of the Flash Player or 0.0 
// ex: Flash Player 7r14 returns 7.14
// If called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision) 
{
 	reqVer = parseFloat(reqMajorVer + "." + reqRevision);
   	// loop backwards through the versions until we find the newest version	
	for (i=25;i>0;i--) {	
		if (isIE && isWin && !isOpera) {
			versionStr = VBGetSwfVer(i);
		} else {
			versionStr = JSGetSwfVer(i);		
		}
		if (versionStr == -1 ) { 
			return false;
		} else if (versionStr != 0) {
			if(isIE && isWin && !isOpera) {
				tempArray         = versionStr.split(" ");
				tempString        = tempArray[1];
				versionArray      = tempString .split(",");				
			} else {
				versionArray      = versionStr.split(".");
			}
			versionMajor      = versionArray[0];
			versionMinor      = versionArray[1];
			versionRevision   = versionArray[2];
			
			versionString     = versionMajor + "." + versionRevision;   // 7.0r24 == 7.24
			versionNum        = parseFloat(versionString);
        	// is the major.revision >= requested major.revision AND the minor version >= requested minor
			if ( (versionMajor > reqMajorVer) && (versionNum >= reqVer) ) {
				return true;
			} else {
				return ((versionNum >= reqVer && versionMinor >= reqMinorVer) ? true : false );	
			}
		}
	}	
	return (reqVer ? false : 0.0);
}


