/*Kodlama:Ahmet AKÇAY*/

function mE(elementsMap, nodeMap){
	if( typeof (myDOM) == "undefined") var myDOM = new getDOM();
	if (typeof(nodeMap)=="undefined") nodeMap = document
	return myDOM.mE(elementsMap,nodeMap);
}

function getDOM(){
	this.myObjects = new Array();
	this.myTempObjArr = new Array();
	this.childParameter ="";
}
getDOM.prototype = {
	mE: function(eStr, _parentNode){	
		if(eStr.indexOf(" ") < 0){	
			if(eStr.indexOf("#")<0){
				//sadece tag yolladiysa			 
				if(eStr.indexOf(".") < 0) {			    				    	
				    return this.myObjects  = this.getElementByTagName(eStr, _parentNode);
				}
				//tag ve class yolladiysa
				else{				    
					//sadece class yolladiysa
					if(eStr.indexOf(".") == 0) return this.myObjects  = this.getElementsByClassName(eStr.substr(1,eStr.length-1),null,_parentNode)
					//tag yolladiysa
					else return this.myObjects = this.getElementsByClassName(eStr.substr(eStr.indexOf(".")+1), eStr.substr(0,eStr.indexOf(".")), _parentNode)
				}
			}
			else{
				//sadece id geçiriyorsa
				return this.myObjects  = this.getElementById(eStr.substr(1,eStr.length-1),_parentNode)
			}
		}
		else{
		    var myChildParameter="";
		    // ilk once elemanlari bulduruyorum child a sonra bakiyorum 
		    if(eStr.indexOf(">")>-1){
		        myChildParameter = eStr.substr(eStr.indexOf(">")+2)
		        eStr = eStr.substr(0,eStr.indexOf(">")-1)
		    }
		    //nodelarin bulunmasi
			nodesArr = eStr.split(" ");
			var _parentNode = new Array();
			_parentNode.push(document);
			for(var i=0, p = nodesArr.length;i<p;i++){
				var temArr = [];
				for (j=0;j<_parentNode.length;j++){
					temArr.push(this.mE(nodesArr[i], _parentNode[j]));
				}
				var _parentNode = new Array();
				for(var l=0;l<temArr.length;l++){
					if(typeof(temArr[l].length) == "number"){
						for(var k=0;k<temArr[l].length;k++){
							_parentNode.push(temArr[l][k]);	
						}
					}
					else{
						_parentNode.push(temArr[l]);
					}
				}
			}
			//bulunan node larda child in aranmasi
			if(myChildParameter.length>0) {		
			    var temArr = new Array();
			    for (var i=0,p=_parentNode.length;i<p;i++){		        
			         _myObj = this.mE(myChildParameter, _parentNode[i]);
			        if(_myObj.length>0) temArr.push(_myObj[0])			       
			    }
			    _parentNode = temArr;
			}
			return _parentNode;
		}
	},
	getElementByTagName: function(_tagName,_parentObj){

		return _parentObj.getElementsByTagName(_tagName)
	},
	// Revised to support looking for multiple class names, by Robert Nyman
	
	getElementsByClassName : function(className, tag, elm){
		var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	    var tag = tag || "*";
	    var elm = elm || document;
	    var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	    var returnElements = [];
	    var current;
	    var length = elements.length;
	    for(var i=0; i<length; i++){
		    current = elements[i];
		    if(testClass.test(current.className)){
			    returnElements.push(current);
		    }
	    }
	    return returnElements;		
	},
	getElementById : function(_id,_parentObj){
		return _parentObj.getElementById(_id)
	}
}


function Acaks(ajaxObj) {	
	this.myRequestObject = null;
	this.xmlurl = "";
	this.method = "GET";
	this.http_request = false;
	this.parameters = "";
	this.successRun = null;
	this.responseType = "text";
	if(typeof(ajaxObj)!= "undefined"){
		this.xmlurl = typeof(ajaxObj.url) != "undefined" ? ajaxObj.url : this.xmlurl;
		this.method = typeof(ajaxObj.method) != "undefined" ? ajaxObj.method : this.method;
		this.parameters = typeof(ajaxObj.parameters) != "undefined" ? ajaxObj.parameters : this.parameters;
		this.successRun = typeof(ajaxObj.successRun) != "undefined" ? ajaxObj.successRun : this.successRun;
		this.responseType = typeof(ajaxObj.responseType) != "undefined" ? ajaxObj.responseType : this.responseType;
	}
	this.createHttpRequest();
}

Acaks.prototype = {
	init:function(_xmlPath){
		this.xmlurl = _xmlPath;
		this.createHttpRequest();		
	},
	createHttpRequest: function(){	
	myRequestObject = this
		if (window.XMLHttpRequest) { // Mozilla, Safari,...
			this.http_request = new XMLHttpRequest();
			if (this.http_request.overrideMimeType) {
				this.http_request.overrideMimeType('text/xml');
			}
			} else if (window.ActiveXObject) { // IE		
				try {
					this.http_request = new ActiveXObject("Msxml2.XMLHTTP");
				}catch (e) {
			  try {
				 this.http_request = new ActiveXObject("Microsoft.XMLHTTP");
			  } catch (e) {}
		   }
		}
		if (!this.http_request) {
		   alert('XMLHTTP nesnesi olusturulamadi!');
		   return false;
		}	 
		this.http_request.onreadystatechange = myRequestObject.createXmlObject;
		myURL = this.xmlurl; 
		this.parameters += "&"+ Math.random(10000)
		if(this.method=="GET") myURL += "?"+ this.parameters		
		this.http_request.open(this.method, myURL, true);
		if(this.method=="POST"){
			this.http_request.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
			this.http_request.setRequestHeader("Content-length", this.parameters.length);
			this.http_request.setRequestHeader("Connection", "close");
			this.http_request.send(this.parameters);
		}
		else{
			this.http_request.send(null);
		}
	},
	createXmlObject: function(){
		if (myRequestObject.http_request.readyState == 4) {	
			if (myRequestObject.http_request.status == 200) {				
				if (myRequestObject.responseType=="xml"){
					var myResponse = myRequestObject.http_request.responseXML.documentElement;
				}	
				else if (myRequestObject.responseType=="json"){
					var myResponse = myRequestObject.JSON(myRequestObject.http_request.responseText);
				}
				else{
					var myResponse = myRequestObject.http_request.responseText;
				}
				if (myRequestObject.successRun!=null){
					
					myRequestObject.successRun(myResponse);
				}
				else{
					return myResponse;
				}
			}
		}
	},
	
	JSON: function(_jsonStr){
		try{
			return eval('(' + _jsonStr+')');
		}
		catch(err){
			return new Object();	
		}
	}
	
}

function zebraStyle(_obj, _objChild, _mod, _class){
    var _objArr = [];
    if (typeof(_obj.length) == "undefined") {
        _objArr.push(_obj)
    }
    else{
        _objArr = _obj;
    }
    for(z=0,l=_objArr.length;z<l;z++){
        mylist = mE(_objChild, _objArr[z]);
        j=0;
        for(var i=0,k=mylist.length;i<k;i++){
            if(i-1>0){
               exItem = (mylist[i-1].parentNode.nodeName=="#text")? mylist[i-1].parentNode.parentNode: mylist[i-1].parentNode
                mItem = (mylist[i].parentNode.nodeName=="#text")? mylist[i].parentNode.parentNode : mylist[i].parentNode
                if(exItem != mItem) continue;
            }        
            if(i % _mod){
              mylist[i].className += _class; 
            }
            j++;
        }
   }
}


function tableOverEffect(tbls, onlyMe){
    var tblsArr = [];
    if (typeof(tbls.length) == "undefined") {
        tblsArr.push(tbls)
    }
    else{
        tblsArr = tbls;
    }
    for(z=0,l=tblsArr.length;z<l;z++){
        if(onlyMe){
            tblsArr[z].onmouseover = function(){
                this.className += " over";
            }
            tblsArr[z].onmouseout = function(){
                this.className = this.className.replace("over","")
            }
        }else{
            mTr = mE("tr", tblsArr[z]);
            for (var i=0,k=mTr.length;i<k;i++){
                mTr[i].onmouseover = function(){
                    this.className += " over";
                }
                mTr[i].onmouseout = function(){
                    this.className = this.className.replace("over","")
                }
            }
       }
    }
}


var showHide = function(_myObj,_objName,type,returnType){
		this.exActive=null;
		this.objName = _objName;
		this.closeExObject=true;
		this.myObj=_myObj;
		this.type=type || "showHide";
		this.returnType=returnType || "stop";
		if(typeof _myObj=="object")	this.init();
	}
	showHide.prototype = {
		init : function(){
			objList = (this.type=="faq")? mE("dt",this.myObj): this.myObj;
			for (var i=0,k = objList.length;i<k;i++){				
				myHref = (this.type=="faq")? mE("a",objList[i])[0]: objList[i];				
				myHref.setAttribute("_obj",this.objName)
				
				myHref.onclick=function(){				
					faqObj = eval(this.getAttribute("_obj"));
					
					myObj = (faqObj.type=="faq")? this.parentNode: this;
					faqObj.toogle(myObj);
					
					if(faqObj.closeExObject && faqObj.exActive!=null && faqObj.exActive!=this){
						if(faqObj.type=="faq"){
						   if(faqObj.exActive.parentNode.className=="selected") faqObj.toogle(faqObj.exActive.parentNode);
						}
						else if(faqObj.type=="showHide"){
						    targetObj = mE(faqObj.exActive.getAttribute("href").substr(faqObj.exActive.getAttribute("href").indexOf("#")));
						    if(targetObj.style.display=="block") faqObj.toogle(faqObj.exActive);
						}
					}
					if(faqObj.exActive!=this) faqObj.exActive = this;
					if(faqObj.returnType=="stop") return false;
				}
			}
		},		
		toogle : function(_node){
		//faq titpi (dt ise ff ve ie icin dd sine bakiyo ) degilse class indaki obj yi aliyo
		targetObj = (this.type=="faq")?((_node.nextSibling.nodeName == "#text")? _node.nextSibling.nextSibling: _node.nextSibling): mE(_node.getAttribute("href").substr(_node.getAttribute("href").indexOf("#")));
			if(this.type=="faq"){
			    if(_node.className=="selected"){
				    _node.className="";
				    targetObj.className="";
    				
			    }
			    else{
				    _node.className="selected"
				    targetObj.className="selected";
			    }
			}
		    else{
		     targetDisplay = targetObj.style.display;
		        if(targetDisplay=="none"){
		          targetObj.style.display = "block";
		          _node.className += " selected"
		        }
		        else{
		            targetObj.style.display = "none";
		            _node.className = _node.className.replace(" selected","")
		        }
		        
		        
		    
		    }
		},
	choiceMe : function(selObject){
	    myObj = (this.type=="faq")? selObject.parentNode: selObject;
		this.toogle(myObj);
		this.exActive = selObject;
	}
	}



function getQS(_str){
  returnObj = {};  
  myHreh = window.location.href;
  tempArr = [];
  tempArr=myHreh.split("?");
  if(tempArr.length>1){
    tempArr1 = [];
    tempArr1 = tempArr[1].split("&");  
    for(var i=0,k=tempArr1.length;i<k;i++){    
        tempArr2 = tempArr1[i].split("=");
        if(tempArr2.length>1){
            if(tempArr2[0]== _str){
                return tempArr2[1];
            }
        }
        else{
            return tempArr2[0];
        }
    }  
    return ""; 
  }    
  return ""; 
}


function gotoMyChildHref(_parent){
    _arrMiniSpot = mE(_parent);
        for(var i=0,k=_arrMiniSpot.length;i<k;i++){
            _arrMiniSpot[i].onclick=function(){
            
                if(mE("a",this).length>0) window.location.href= mE("a",this)[0].href;
            }
        }
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}


var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{		
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{string: navigator.userAgent,subString: "OmniWeb",versionSearch: "OmniWeb/",identity: "OmniWeb"},
		{string: navigator.vendor,subString: "Apple",identity: "Safari"},
		{prop: window.opera,identity: "Opera"},
		{string: navigator.vendor,subString: "iCab",identity: "iCab"},
		{string: navigator.vendor,subString: "KDE",identity: "Konqueror"},
		{string: navigator.userAgent,subString: "Firefox",identity: "Firefox"},
		{string: navigator.vendor,subString: "Camino",identity: "Camino"},
		{string: navigator.userAgent,subString: "Netscape",identity: "Netscape"},
		{string: navigator.userAgent,subString: "MSIE",identity: "Internet Explorer",versionSearch: "MSIE"},
		{string: navigator.userAgent,subString: "Chrome",identity: "Chrome",versionSearch: "Chrome"},
		{string: navigator.userAgent,subString: "Gecko",identity: "Mozilla",versionSearch: "rv"},
		{string: navigator.userAgent,subString: "Mozilla",identity: "Netscape",versionSearch: "Mozilla"}
	],
	dataOS : [
		{string: navigator.platform,subString: "Win",identity: "Windows"},
		{string: navigator.platform,subString: "Mac",identity: "Mac"},
		{string: navigator.platform,subString: "Linux",identity: "Linux"}
	]

};
BrowserDetect.init();




