function fixSize() {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth-17;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }

  var avail = myWidth - 990;

  var container = document.getElementById('container');
  container.style.left=(avail/2) + "px";
  var left_column = document.getElementById('left_column');
  left_column.style.width=(avail/2) + "px";
  var right_column = document.getElementById('right_column');
  right_column.style.width=(avail/2) + "px";
  right_column.style.left=(avail/2) + 990 + "px";
  
  var left_column = document.getElementById('left_column');
  left_column.style.height = myHeight + "px";
  var right_column = document.getElementById('right_column');
  right_column.style.height = myHeight + "px";

}

if (document.layers || document.getElementById&&!document.all) {
	Document.prototype.loadXML = function(strXML) {
		var objDOMParser = new DOMParser();
		var objDoc = objDOMParser.parseFromString(strXML, "text/xml");  //new XPCNativeWrapper(window, "DOMParser").DOMParser;
		while (this.hasChildNodes())
			this.removeChild(this.lastChild);
		for (var i=0; i < objDoc.childNodes.length; i++) {
			var objImportedNode = this.importNode(objDoc.childNodes[i], true);
			this.appendChild(objImportedNode);
		}
	} 
}

function sendHttpRequest(tid, url,callbackFunc,respXml) {
	var xmlobj=null;
	try {
	    xmlobj=new XMLHttpRequest();
	}
	catch(e) {
		try {
		    xmlobj=new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch(e) {
		    alert('AJAX isn\'t supported by your browser!');
		    return false;
		}
	}
	xmlobj.onreadystatechange=function() {
		if(xmlobj.readyState==4) {
			if(xmlobj.status==200) {
			    respXml?eval(callbackFunc+'(xmlobj.responseXML)'):eval(callbackFunc+'(xmlobj.responseText)');
			}
		}
	}
	// open socket connection
	xmlobj.open('POST',url,true);
	// send http header
	xmlobj.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
	// get form values and send http request
	xmlobj.send(tid);
}

/* Functions */
function getNews(strID, intLID) {
	sendHttpRequest('nid=' + strID + '&lid=' + intLID, 'getNewsDetails.php','getNewsDetails');
}

function getAllNews(intLID) {
	sendHttpRequest('lid=' + intLID, 'getAllNews.php','getAllNewsDetails');
}

function getPage(intPageNum, strFast) {
	var intPP;
	var strMainDiv;
	var strSuffix;
	if(strFast == '') {
		intPP = intAllNewsPP;
		strMainDiv = 'allNews';
		strSuffix = '';
	}
	else {
		intPP = intFastNewsPP;
		strMainDiv = 'FastNews';
		strSuffix = '_fast';
	}

	intUpper = (intPageNum * intPP) + 1;
	intLower = intUpper - intPP;
	if(intUpper > objNews.length)
		intUpper = objNews.length;

	for(q=1;q<=intPP;q++) {
		var intSelectedNews = (intLower + q) - 2;

		if((intLower + q) - 1 > intUpper) {
			obj = document.getElementById(strMainDiv + q);
			obj.setAttribute('style', 'display: none');
			
		}
		else {
			objSelectedNews = objNews[intSelectedNews];

			obj = document.getElementById(strMainDiv + q);
			obj.setAttribute('style', 'display: block');
			//obj.setAttribute('style', 'float: left');
					
			obj = document.getElementById('asn_date' + strSuffix + q);
			obj.innerHTML = objSelectedNews.date_;
			
			obj = document.getElementById('asn_title' + strSuffix + q);
			obj.innerHTML = objSelectedNews.title;
	
			obj = document.getElementById('asn_short_descr' + strSuffix + q);
			obj.innerHTML = objSelectedNews.short_descr;
	
			if(strFast == '') {
				obj = document.getElementById('asn_image' + q);
				if(objSelectedNews.photo != '')
					obj.innerHTML = '<img src="/content/' + objSelectedNews.photo + '" alt="' + objSelectedNews.title + '" />';
				else
					obj.innerHTML = '';
			}
			
			obj = document.getElementById('asn_more' + strSuffix + q);
			obj.href = 'news.php?nid=' + objSelectedNews.id;
		}
	}
}

function CalcPaging(strFast) {
	var strSuffix;
	var intPP;
	var intCurrPage;
	if(strFast == '') {
		strSuffix = '';
		intPP = intAllNewsPP;
		intCurrPage = intNewsCurrentPage;
	}
	else {
		strSuffix = '_fast';
		intPP = intFastNewsPP;
		intCurrPage = intFastNewsCurrentPage;
	}
	
	var obj = document.getElementById('pages'+strSuffix);
	var strPages = '';
	var intTotPages = objNews.length / intPP;
	intTotPages = intTotPages + "";
	if(intTotPages.indexOf(".") > 0)
		intTotPages = parseInt(intTotPages) + 1;
	
	for(q=1;q<=intTotPages;q++) {
		strPages+= '<div';
		if(intCurrPage != q) 
			strPages+= ' class="active" onclick="ChangePage(' + q + ', \'' + strFast + '\');"';
		else
			strPages+= ' class="inactive"';

			strPages+= ' style="float: left; margin-left: 1px; margin-right: 1px; text-align: center; width: 20px; height: 20px;"><div style="padding-top: 4px;">' + q + '</div></div> ';
	}
	
	obj.innerHTML = strPages;
	
	if(intCurrPage > 1) {
		var obj = document.getElementById('prev_page'+strSuffix);
		obj.setAttribute('class', 'active');
		obj.setAttribute('onclick', 'ChangePage(' + (intCurrPage-1) + ', \'' + strFast + '\')');
	}
	else {
		var obj = document.getElementById('prev_page'+strSuffix);
		obj.setAttribute('class', 'inactive');
		obj.setAttribute('onclick', '');		
	}

	if(intCurrPage < intTotPages) {
		var obj = document.getElementById('next_page'+strSuffix);
		obj.setAttribute('class', 'active');
		obj.setAttribute('onclick', 'ChangePage(' + (intCurrPage+1) + ', \'' + strFast + '\')');
	}
	else {
		var obj = document.getElementById('next_page'+strSuffix);
		obj.setAttribute('class', 'inactive');
		obj.setAttribute('onclick', '');		
	}

}

function ChangePage(intPageNum, strFast) {
	var intCurrPage;
	if(strFast == '') {
		intNewsCurrentPage = intPageNum;
	}
	else {
		intFastNewsCurrentPage = intPageNum;
	}

	getPage(intPageNum, strFast);
	
	CalcPaging(strFast);
}

/* Ajax Functions */
function getNewsDetails(strInput) {
	if (window.ActiveXObject) {
  	xmldoc = new ActiveXObject("Microsoft.XMLDOM");
  	xmldoc.async=false;
  	xmldoc.loadXML(strInput);
  	fncPopulateNewsDetails();
  }
	else if (document.implementation && document.implementation.createDocument) {
  	xmldoc= document.implementation.createDocument("","",null);
  	xmldoc.loadXML(strInput);
  	xmldoc.onload=fncPopulateNewsDetails();
  }
	else {
  	alert('Browser does not support the application');
  }
}

function fncPopulateNewsDetails() {
	var objTexts=xmldoc.getElementsByTagName("Main");
	try {
		objSingleNews = new class_News();
		objSingleNews.id = objTexts[0].getElementsByTagName("id")[0].firstChild.nodeValue;
		objSingleNews.date_ = objTexts[0].getElementsByTagName("date_")[0].firstChild.nodeValue;
		objSingleNews.title = objTexts[0].getElementsByTagName("title")[0].firstChild.nodeValue;
		objSingleNews.photo = objTexts[0].getElementsByTagName("photo")[0].firstChild.nodeValue;
		objSingleNews.short_descr = objTexts[0].getElementsByTagName("short_descr")[0].firstChild.nodeValue;
		objSingleNews.descr = objTexts[0].getElementsByTagName("descr")[0].firstChild.nodeValue;
		objSingleNews.prev_id = objTexts[0].getElementsByTagName("prev_id")[0].firstChild.nodeValue;
		objSingleNews.next_id = objTexts[0].getElementsByTagName("next_id")[0].firstChild.nodeValue;

		var obj = document.getElementById('asn_date');
		obj.innerHTML = objSingleNews.date_;
		
		obj = document.getElementById('asn_title');
		obj.innerHTML = objSingleNews.title;

		obj = document.getElementById('asn_descr');
		obj.innerHTML = objSingleNews.descr;

		obj = document.getElementById('asn_image');
		if(objSingleNews.photo != '')
			obj.innerHTML = '<img src="/content/' + objSingleNews.photo + '" alt="' + objSingleNews.title + '" />';
		else
			obj.innerHTML = '';

		obj = document.getElementById('prev_page');
		if(objSingleNews.prev_id > 0) {
			obj.setAttribute("class", "active");
			obj.setAttribute("onclick", "getNews(" + objSingleNews.prev_id + ", " + objLang + ")");
		} else {
			obj.setAttribute("class", "");
			obj.setAttribute("onclick", "");
		}

		obj = document.getElementById('next_page');
		if(objSingleNews.next_id > 0) {
			obj.setAttribute("class", "active");
			obj.setAttribute("onclick", "getNews(" + objSingleNews.next_id + ", " + objLang + ")");
		} else {
			obj.setAttribute("class", "");
			obj.setAttribute("onclick", "");
		}
	}
	catch(e) {
		alert(e);
	}
}

function getAllNewsDetails(strInput) {
	if (window.ActiveXObject) {
  	xmldoc = new ActiveXObject("Microsoft.XMLDOM");
  	xmldoc.async=false;
  	xmldoc.loadXML(strInput);
  	fncPopulateAllNewsDetails();
  }
	else if (document.implementation && document.implementation.createDocument) {
  	xmldoc= document.implementation.createDocument("","",null);
  	xmldoc.loadXML(strInput);
  	xmldoc.onload=fncPopulateAllNewsDetails();
  }
	else {
  	alert('Browser does not support the application');
  }
}

function fncPopulateAllNewsDetails() {
	try {
		var tmpNews;
		var objNews_ = xmldoc.getElementsByTagName("News");

		for (j=0;j<objNews_.length;j++) {
			a_News = objNews_[j].getElementsByTagName("NewsItem");
			for (i=0;i<a_News.length;i++) {
				tmpNews = new class_News();

				tmpNews.id = a_News[i].getElementsByTagName("id")[0].firstChild.nodeValue;
				tmpNews.date_ = a_News[i].getElementsByTagName("date_")[0].firstChild.nodeValue;
				tmpNews.title = a_News[i].getElementsByTagName("title")[0].firstChild.nodeValue;
				tmpNews.photo = a_News[i].getElementsByTagName("photo")[0].firstChild.nodeValue;
				tmpNews.short_descr = a_News[i].getElementsByTagName("short_descr")[0].firstChild.nodeValue;
				tmpNews.descr = a_News[i].getElementsByTagName("descr")[0].firstChild.nodeValue;

				objNews.push(tmpNews);
			}
		}
	}
	catch(e) {
		alert(e);
	}
	
	fncHandler();
}

function emailCheck (emailStr) {
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	var matchArray=emailStr.match(emailPat)
	if (matchArray==null) {
	 alert("Το e-mail δεν έχει σωστή μορφή (ελέξτε @ και .)");
	 return false;
	}
	
	var user=matchArray[1]
	var domain=matchArray[2]
	
	if (user.match(userPat)==null) {
	    alert("Το username του e-mail δεν έχει σωστή μορφή.")
	    return false
	}
	

	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
		 if (IPArray[i]>255) {
			alert("Η IP της διεύθυνσης αποστολής δεν έχει σωστή μορφή!")
			return false
		 }
		}
		return true
	}
	
	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
	 alert("To domain αποστολής του e-mail δεν έχει σωστή μορφή.")
	 return false
	}
	
	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) {
	   alert("Το e-mail θα πρέπει να τελειώνει \nμε domain 3 χαρακτήρων, ή χώρα 2 χαρακτήρων.")
	   return false
	}
	
	if (len<2) {
   var errStr="Το e-mail δεν έχει σωστή μορφή!"
   alert(errStr)
   return false
  }
  
  return true
}

function getProjects(strCID, intLID) {
	sendHttpRequest('cid=' + strCID + '&lid=' + intLID, 'getProjectDetails.php','getProjectDetails');
}

function getProjectDetails(strInput) {
	if (window.ActiveXObject) {
  	xmldoc = new ActiveXObject("Microsoft.XMLDOM");
  	xmldoc.async=false;
  	xmldoc.loadXML(strInput);
  	fncPopulateProjectDetails();
  }
	else if (document.implementation && document.implementation.createDocument) {
  	xmldoc= document.implementation.createDocument("","",null);
  	xmldoc.loadXML(strInput);
  	xmldoc.onload=fncPopulateProjectDetails();
  }
	else {
  	alert('Browser does not support the application');
  }
}

function fncPopulateProjectDetails() {
	try {
		var tmpProjects;
		var objProjects_ = xmldoc.getElementsByTagName("Projects");

		for (j=0;j<objProjects_.length;j++) {
			a_Projects = objProjects_[j].getElementsByTagName("ProjectsItem");
			for (i=0;i<a_Projects.length;i++) {
				tmpProjects = new class_Project();

				tmpProjects.id = a_Projects[i].getElementsByTagName("id")[0].firstChild.nodeValue;
				tmpProjects.launch_date = a_Projects[i].getElementsByTagName("launch_date")[0].firstChild.nodeValue;
				tmpProjects.title = a_Projects[i].getElementsByTagName("title")[0].firstChild.nodeValue;
				tmpProjects.thumb = a_Projects[i].getElementsByTagName("thumb")[0].firstChild.nodeValue;
				tmpProjects.cat = a_Projects[i].getElementsByTagName("cat")[0].firstChild.nodeValue;
				tmpProjects.short_descr = a_Projects[i].getElementsByTagName("short_descr")[0].firstChild.nodeValue;
				tmpProjects.link = a_Projects[i].getElementsByTagName("link")[0].firstChild.nodeValue;

				objProjects.push(tmpProjects);
			}
		}
	}
	catch(e) {
		alert(e);
	}
	
	fncProjectHandler();
}

function getProjectPage(intPageNum) {
	var intPP=intProjectsPP;
	var strMainDiv='proj';

	intUpper = (intPageNum * intPP) + 1;
	intLower = intUpper - intPP;
	if(intUpper > objProjects.length)
		intUpper = objProjects.length;

	for(q=1;q<=intPP;q++) {
		var intSelectedProject = (intLower + q) - 2;
		if((intLower + q) - 1 > intUpper) {
			var obj = document.getElementById(strMainDiv + q);
			obj.setAttribute('style', 'display: none');			
		}
		else {
			objSelectedProject = objProjects[intSelectedProject];

			var obj = document.getElementById(strMainDiv + q);
			obj.setAttribute('style', 'display: block');
			//obj.setAttribute('style', 'float: left');
			
			obj = document.getElementById('psn_image' + q);
			if(objSelectedProject.thumb != '')
				obj.innerHTML = '<img src="/content/' + objSelectedProject.thumb + '" alt="' + objSelectedProject.title + '" />';
			else
				obj.innerHTML = '';

			obj = document.getElementById('psn_title' + q);
			obj.innerHTML = objSelectedProject.title;

			obj = document.getElementById('psn_cat' + q);
			obj.innerHTML = objSelectedProject.cat;
					
			obj = document.getElementById('psn_date' + q);
			obj.innerHTML = objSelectedProject.launch_date;
	
			obj = document.getElementById('psn_descr' + q);
			obj.innerHTML = objSelectedProject.short_descr;
				
			obj = document.getElementById('psn_more' + q);
			obj.href = 'project.php?pid=' + objSelectedProject.id + '&wcat=' + intWCat;
			
			if(objSelectedProject.link != '' && 1 == 2) {
				obj = document.getElementById('psn_visit' + q);
				obj.setAttribute('style', 'display: block');

				obj = document.getElementById('psn_visit_link' + q);
				obj.href = objSelectedProject.link;
			}
			else {
				obj = document.getElementById('psn_visit' + q);
				obj.setAttribute('style', 'display: none');				
			}
		}
	}
}

function ProjectCalcPaging() {
	var intPP;
	var intCurrPage;
	intPP = intProjectsPP;
	intCurrPage = intProjectsCurrentPage;
	
	var obj = document.getElementById('pages');
	var strPages = '';
	var intTotPages = objProjects.length / intPP;
	intTotPages = intTotPages + "";
	if(intTotPages.indexOf(".") > 0)
		intTotPages = parseInt(intTotPages) + 1;
	
	for(q=1;q<=intTotPages;q++) {
		strPages+= '<div';
		if(intCurrPage != q) 
			strPages+= ' class="active" onclick="ProjectChangePage(' + q + ');"';
		else
			strPages+= ' class="inactive"';

			strPages+= ' style="float: left; margin-left: 1px; margin-right: 1px; text-align: center; width: 20px; height: 20px;"><div style="padding-top: 4px;">' + q + '</div></div> ';
	}
	
	obj.innerHTML = strPages;
	
	if(intCurrPage > 1) {
		var obj = document.getElementById('prev_page');
		obj.setAttribute('class', 'active');
		obj.setAttribute('onclick', 'ProjectChangePage(' + (intCurrPage-1) + ')');
	}
	else {
		var obj = document.getElementById('prev_page');
		obj.setAttribute('class', 'inactive');
		obj.setAttribute('onclick', '');		
	}

	if(intCurrPage < intTotPages) {
		var obj = document.getElementById('next_page');
		obj.setAttribute('class', 'active');
		obj.setAttribute('onclick', 'ProjectChangePage(' + (intCurrPage+1) + ')');
	}
	else {
		var obj = document.getElementById('next_page');
		obj.setAttribute('class', 'inactive');
		obj.setAttribute('onclick', '');		
	}
}

function ProjectChangePage(intPageNum) {
	var intCurrPage;

	intProjectsCurrentPage = intPageNum;

	getProjectPage(intPageNum);
	
	ProjectCalcPaging();
}
