YAHOO.namespace('cn.cobo');
var $C = YAHOO.util.Cookie;
var $CB = YAHOO.cn.cobo;
var $D = YAHOO.util.Dom;
var $E = YAHOO.util.Event;
var $Elm = YAHOO.util.Element;
var $L = YAHOO.lang;

$E.onDOMReady(function() {
	initNavMenu();
	initButton();
	initTabView();
	initValidate();
	palyWhatiscloud();
	homeAnim();
	if (typeof (initPageJS) == "function") {
		initPageJS();
	}
});

var initNavMenu = function() {

	var callback = {
		cache : true,
		success : function(o) {
			try {
				$CB.menuJSON = YAHOO.lang.JSON.parse(o.responseText, function(key, value) {
					if (key == "url") {
						return ($CB.path + value);
					} else {
						return value;
					}
				});
				var menu = new YAHOO.widget.MenuBar("navmenu", {
					autosubmenudisplay : true,
					hidedelay : 750,
					lazyload : true,
					shadow : true
				});
				menu.addItems($CB.menuJSON.itemdata);
				menu.render();
				$CB.navmenu = menu;
			} catch (e) {
				alert("json data error!");
			}
			;
		},
		failure : function(o) {
			alert("load data fail!");
			return false;
		}
	};
	$CB.typeJsonTransaction = YAHOO.util.Connect.asyncRequest("GET", $CB.path + "/navmenu.html?v=044", callback);
};

var initButton = function() {
	var oButtons = $D.getElementsByClassName("button");
	for ( var i = 0; i < oButtons.length; i++) {
		var oBtn = oButtons[i];
		var oBtnId = oBtn.id;
		var oBtnName = oBtn.name;
		if (oBtnName.indexOf("_btnmenu") > -1) {
			var oMenuBtn = new YAHOO.widget.Button(oBtn, {
				type : "menu",
				menu : oBtnId + "_menu"
			});
			oMenuBtn.getMenu().subscribe("click", onMenuClick);
		} else {
			var act = "";
			if ($D.getAttribute(oBtn, "href") != null && $D.getAttribute(oBtn, "href") != "") {
				act = $D.getAttribute(oBtn, "href");
			} else {
				act = $D.getAttribute(oBtn, "onclick");
			}

			var typee = $D.getAttribute(oBtn, "type");
			if (act != null && act != "") {
				var yBtn = new YAHOO.widget.Button(oBtn, {
					type : (typee == "submit") ? "submit" : "push",
					onclick : {
						fn : onBtnClick,
						obj : act
					}
				});
			} else {
				var yBtn = new YAHOO.widget.Button(oBtn, {
					type : (typeof typee != "undefined" && typee == "submit") ? "submit" : "push"
				});

			}
		}
	}
};
var onBtnClick = function(p_sType, p_aArgs) {
	eval(p_aArgs);
}

var initImg = function(imgs) {
	for ( var i = 0; i < imgs.length; i++) {
		var img = new Image();
		img.url = $CB.path + "/images/" + imgs[i];
		alert(img.width);
	}
}

var initTabView = function() {
	var plts = $D.getElementsByClassName("yui-navset");
	for ( var i = 0; i < plts.length; i++) {
		$D.setAttribute(plts[i], "id", "tabview" + i);
		var tabview = new YAHOO.widget.TabView(plts[i]);
		/*
		var tabs = tabview.get("tabs");
		for ( var l = 0; l < tabs.length; l++) {
			tabview.getTab(l).set("cacheData", true);
			if (tabview.getTab(l).get("active")) {
				actvieIndex = l;
			}
			if ($D.hasClass(tabview.getTab(l),"windowLink")) {
				tabview.getTab(l).on("click", tabmore);
			} else {
				var typee = $D.getAttribute(tabview.getTab(l), "typee");
				var act = $D.getAttribute(tabview.getTab(l), "act");
				if (typee != null) {
					if (typee.toLowerCase() == "action") {
						var d = document.createElement('div');
						d.innerHTML = "<div id=\"content" + i + "-" + l + "\">content</div>";
						var ctId = "content" + i + "-" + l;
						tabview.getTab(l).get("contentEl").appendChild(d);
						eval(act + "(\"" + ctId + "\")");
					} else if (typee.toLowerCase() == "datasrc") {
						tabview.getTab(l).set("dataSrc", act);
					}
				}
			}
		}
		tabview.selectTab(activeIndex);
		 */
	}
}

var initValidate = function() {
	var vf = $D.getElementsByClassName("validateForm");
	for ( var i = 0; i < vf.length; i++) {
		var oForm = vf[i];
		$E.addListener(oForm, "submit", checkForm);
		for ( var l = 0; l < oForm.elements.length; l++) {
			var elm = oForm.elements[l];
			$E.addListener(elm, "focus", function(){
				if(this.type != "checkbox" && this.type != "radio"){
					this.style.background = "#7ecef4";
					var note = eval('document.getElementById("'+this.name+'_note")');
					if(note != null){
						$D.setStyle(note,"display","block");
					}
				}
			});
			$E.addListener(elm, "blur", function(){
				if($D.hasClass(this,"Required") || $D.hasClass(this,"Email") || $D.hasClass(this,"Cellphone") || $D.hasClass(this,"Url")){
					validateData(this);
				}else{
					if(this.type != "checkbox" && this.type != "radio"){
						this.style.background = "#FFF";
						}
				}
				var note = eval('document.getElementById("'+this.name+'_note")');
				if(note != null){
					$D.setStyle(note,"display","none");
				}
			});
			if ($D.hasClass(elm, "Required")) {
				var div = document.createElement("div");
				var d = $D.insertBefore(div, elm);
				$D.setAttribute(d, "class", "required");
			}
		}
	}
}

function getValue(elm) {
	var elmStr;
	if (typeof elm == "String") {
		elmStr = elm;
	} else {
		elmStr = elm.value;
	}
	return elmStr;
}

function validateData(elm) {
	var setSuccessStyle = function(o) {
		o.style.background = "#FFF";
		return true;
	}
	var setFailureStyle = function(o) {
		o.style.backgroundColor = "#FFB4B4";
		//o.focus();
		return false;
	}
	var isRequired = function(o) {
		if (getValue(o) != "") {
			return true;
		} else {
			return false;
		}
	}
	var isEmail = function(email) {
		var emailStr;
		if (typeof email == "String") {
			emailStr = email;
		} else {
			emailStr = email.value;
		}
		if (emailStr.length == 0) {
			return true;
		}
		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) {
			return false;
		}
		var user = matchArray[1];
		var domain = matchArray[2];
		if (user.match(userPat) == null) {
			return false;
		}
		var IPArray = domain.match(ipDomainPat);
		if (IPArray != null) {
			for ( var i = 1; i <= 4; i++) {
				if (IPArray[i] > 255) {
					return false;
				}
			}
			return true;
		}
		var domainArray = domain.match(domainPat);
		if (domainArray == null) {
			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)) {
			return false;
		}
		if (len < 2) {
			return false;
		}
		return true;
	}

	var isUrl = function(url) {
		var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
		return regexp.test(url.value);
	};

	var isTel = function(tel){
		var regexp = /^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/;
		return regexp.test(tel.value);
	}

	var isCell = function(cell){
		var regexp = /^(?:13\d|15[89])-?\d{5}(\d{3}|\*{3})$/;
		return regexp.test(cell.value);
	}

	var types = [ "Required", "Email", "Url", "Tel", "Cell" ];
	for ( var i = 0; i < types.length; i++) {
		if ($D.hasClass(elm, types[i])) {
			if (!eval("is" + types[i] + "(elm)")) {
				return (setFailureStyle(elm));
			}
		}
	}
	return setSuccessStyle(elm);
}

function checkForm(e){
	for(var i=0;i<this.elements.length;i++){
		if(!validateData(this.elements[i])){
			$E.stopEvent(e);
			alert("您有必填内容尚未填写，请填写后再单击报名按钮，谢谢配合。");
			return false;
		}
	}
}

function getQueryVariable(variable) {
    var query = decodeURI(top.window.location.search.substring(1));
    var vars = query.split("&");
    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i].split("=");
        if (pair[0] == variable) {
            return pair[1];
        }
    }
}

function getFromRequest(){
	var reqs = $D.getElementsByClassName("getFromRequest");
	for(var i=0; i<reqs.length; i++){
		//alert(reqs[i].name);
		var reqObj = reqs[i];
		var reqValue = getQueryVariable(reqObj.name);
		//alert(typeof reqValue);
		if(typeof reqValue != "undefined"){
			reqObj.value = reqValue;
		}
	}
}

function palyWhatiscloud(){
	if($D.getElementsByClassName("whatiscloud") && $D.getElementsByClassName("whatiscloud").length>0){
		var ps = $D.getElementsByClassName("whatiscloud");
		for(var i=0;i<ps.length;i++){
			$E.addListener(ps[i],"click",function(){
				$CB.whatiscloudPanel = new YAHOO.widget.Panel("whatiscloudPanel", {
				    width: "600px",
				    height:"500px",
				    fixedcenter: true,
				    underlay: "shadow",
				    close: true,
				    visible: false,
				    modal : true
				});
				$CB.whatiscloudPanel.setHeader('<img src="'+$CB.path+'/images/icon_016_32.png" ><div class="txt">什么是云计算？</div>');
				$CB.whatiscloudPanel.setBody('<embed src="http://player.youku.com/player.php/sid/XMTkzMjczMjE2/v.swf" allowFullScreen="true" quality="high" width="480" height="400" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash"></embed>');
				$CB.whatiscloudPanel.subscribe( "beforeHide", function(){ $CB.whatiscloudPanel.destroy(); });
				$CB.whatiscloudPanel.render(document.body);
				$CB.whatiscloudPanel.show();
			});
		}
	}
}

function homeAnim(){
	if(document.getElementById("gallery")){
		$CB.gallerys = $D.getChildren("gallery");
		$CB.currentG = 0;
		$CB.nextGallery = function(){
			if($CB.currentG+1 >= $CB.gallerys.length){
				$CB.currentG = -1;
				var ca = $D.getFirstChild($CB.gallerys[$CB.gallerys.length-1]);
				var nextCa = $D.getFirstChild($CB.gallerys[0]);
			}else{
				var ca = $D.getFirstChild($CB.gallerys[$CB.currentG]);
				var nextCa = $D.getFirstChild($CB.gallerys[$CB.currentG+1]);
			}
			$CB.nextCa = nextCa;
			$D.removeClass(ca,"gallery-current");
			$D.addClass(nextCa,"gallery-current");
			var currentSlideId = "slide-"+ca.id.split("-")[1];
			var nextSlideId = "slide-"+nextCa.id.split("-")[1];
			$D.removeClass(currentSlideId,"current");
			$D.addClass(nextSlideId,"current");
			//alert(currentSlideId+","+nextSlideId);
			$CB.currentG++;
		};
		var timerId = window.setInterval("$CB.nextGallery()",5000);
		for(var i=0;i<$CB.gallerys.length;i++){
			var gallery = $CB.gallerys[i];
			$E.addListener(gallery,"click",function(){
				window.clearInterval(timerId);
				var t = $D.getFirstChild(this);
				var c = $D.getFirstChild($CB.gallerys[0]);
				if(typeof ($CB.nextCa) != "undefined"){
					c = $CB.nextCa;
				}
				$D.removeClass(c,"gallery-current");
				$D.addClass(t,"gallery-current");
				var currentSlideId = "slide-"+c.id.split("-")[1];
				var nextSlideId = "slide-"+t.id.split("-")[1];
				$D.removeClass(currentSlideId,"current");
				$D.addClass(nextSlideId,"current");
				$CB.nextCa = t;
				/*
				*/
			})
		}
	}
}


