﻿//string 追加
StringBuffer.prototype.append = function(strValue){this.__strings__.push(strValue);};
StringBuffer.prototype.toString = function(){return this.__strings__.join('');};
function StringBuffer(){this.__strings__ = [];}; 
//format格式化
String.prototype.format = function()
{
    var args = arguments;
    return this.replace(/\{(\d+)\}/g,                
        function(m,i){
            return args[i];
        });
};
//处理非法代码
String.prototype.clear=function()
{
    var sHtml = this.replace(/\r/ig,"<br>").replace(/\n/ig,"<br>")
	sHtml = sHtml.replace(/<\??xml(:\w+)?(\s+[^>]*?)?>([\s\S]*?<\/xml>)?/ig, '');
	sHtml = sHtml.replace(/<\/?(html|head|body|meta|title)(\s+[^>]*?)?>/ig, '');
	sHtml = sHtml.replace(/<link(\s+[^>]*?)?>/ig, '');
	sHtml = sHtml.replace(/<script(\s+[^>]*?)?>[\s\S]*?<\/script>/ig, '');
	sHtml = sHtml.replace(/(<\w+)(\s+[^>]*?)?\s+on(?:click|dblclick|mousedown|mouseup|mousemove|mouseover|mouseout|mouseenter|mouseleave|keydown|keypress|keyup|change|select|submit|reset|blur|focus|load|unload)\s*=\s*(["']?).*?\3((?:\s+[^>]*?)?\/?>)/ig,'$1$2$4');
	sHtml = sHtml.replace(/<style(\s+[^>]*?)?>[\s\S]*?<\/style>/ig, '');
	sHtml = sHtml.replace(/(<\w+)(\s+[^>]*?)?\s+(style|class)\s*=\s*(["']?).*?\3((?:\s+[^>]*?)?\/?>)/ig,'$1$2$4');
	sHtml = sHtml.replace(/<\/(strong|b|u|strike|em|i)>((?:\s|<br\/?>|&nbsp;)*?)<\1(\s+[^>]*?)?>/ig,'$2');//连续相同标签

	return sHtml;
};


//Json操作
var Json = {};
//Json转字符串
Json.toString=function(O) {
	var string = [];
	var isArray = function(a) {
		var string = [];
		for(var i=0; i< a.length; i++) string.push(Json.toString(a[i]));
		return string.join(',');
	};
	var isObject = function(obj) {
		var string = [];
		for (var p in obj){
			if(obj.hasOwnProperty(p) && p!='prototype'){
				string.push('"'+p+'":'+Json.toString(obj[p]));
			}
		};
		return string.join(',');
	};
	if (!O) return false;
	if (O instanceof Function) string.push(O);
	else if (O instanceof Array) string.push('['+isArray(O)+']');
	else if (typeof O == 'object') string.push('{'+isObject(O)+'}');
	else if (typeof O == 'string') string.push('"'+O+'"');
	else if (typeof O == 'number' && isFinite(O)) string.push(O);
	return string.join(',');
}
//字符串转Json
Json.toJson=function(str) {
    try
    {
        return (typeof str=="string")?eval('(' + str + ')'):str;
    }
    catch(err)
    {
        alert("错误的Json数据！");
        return null;

    }
}
//js对象转化成json数据格式
Json.Serialize=function(obj){   
    switch(obj.constructor){   
        case Object:   
            var str = "{";   
            for(var o in obj){   
                str += o + ":" + Json.Serialize(obj[o]) +",";   
            }   
            if(str.substr(str.length-1) == ",")   
                str = str.substr(0,str.length -1);   
            return str + "}";   
            break;   
        case Array:               
            var str = "[";   
            for(var o in obj){   
                str += Json.Serialize(obj[o]) +",";   
            }   
            if(str.substr(str.length-1) == ",")   
                str = str.substr(0,str.length -1);   
            return str + "]";   
            break;   
        case Boolean:   
            return "\"" + obj.toString() + "\"";   
            break;   
        case Date:   
            return "\"" + obj.toString() + "\"";   
            break;   
        case Function:   
            break;   
        case Number:   
            return "\"" + obj.toString() + "\"";   
            break;    
        case String:   
            return "\"" + obj.toString() + "\"";   
            break;       
    } 
} 
//确定此实例的开头是否与指定的字符串匹配
String.prototype.startsWith = String.prototype.startWith = function(str) {
  return this.indexOf(str) == 0;
}
//确定 String 对象的末尾是否与指定的字符串匹配
String.prototype.endsWith = String.prototype.endWith = function(str) {
	var i = this.lastIndexOf(str);
  return i>=0 && this.lastIndexOf(str) == this.length-str.length;
}
//去除空格
String.prototype.trim = function(){
	return this.replace(/(^\s*)|(\s*$)/g,"");
}
//左补齐
String.prototype.leftPad = function(c,count){
	if(!isNaN(count)){
		var a = "";
		for(var i=this.length;i<count;i++){
			a = a.concat(c);
		}
		a = a.concat(this);
		return a;
	}
	return null;
}
//右补齐
String.prototype.rightPad = function(c,count){
	if(!isNaN(count)){
		var a = this;
		for(var i=this.length;i<count;i++){
			a = a.concat(c);
		}
		return a;
	}
	return null;
}
//数组克隆
Array.prototype.clone = function(){
	var len = this.length;
	var r = [];
	for(var i=0;i<len;i++){
		if(typeof(this[i])=="undefined"||this[i]==null){
			r[i] = this[i];
			continue;
		}
		if(this[i].constructor==Array){
			r[i] = this[i].clone();
		}else{
			r[i] = this[i];
		}
	}
	return r;
}
//数组插入
Array.prototype.insert = function(index,data){
	if(isNaN(index) || index<0 || index>this.length) {
		this.push(data);
	}else{
		var temp = this.slice(index);
		this[index]=data;
		for (var i=0; i<temp.length; i++){
			this[index+1+i]=temp[i];
		}
	}
	return this;
}
//数组移除 如果dust为ture，则返回被删除的元素
Array.prototype.remove = function(s,dust){
	if(dust){
	var dustArr=[];
	  for(var i=0;i<this.length;i++){
		if(s == this[i]){
			dustArr.push(this.splice(i, 1)[0]);
		}
	  }
	  return dustArr;
	}

  for(var i=0;i<this.length;i++){
    if(s == this[i]){
		this.splice(i, 1);
    }
  }
  return this;
}
//数组索引位
Array.prototype.indexOf = function(func){
	var len = this.length;
	for(var i=0;i<len;i++){
		if (this[i]==arguments[0])
			return i;
	}
	return -1;
}
//遍历组数
Array.prototype.each = function(func){
	var len = this.length;
	for(var i=0;i<len;i++){
		try{
			func(this[i],i);
		}catch(ex){
			//alert("Array.prototype.each:"+ex.message);
		}
	}
}
var Cart={};
Cart.Name="PloCart";
//数据
Cart.Data=function()
{
    if(!Cart.Name || Cart.Name==""){
        alert("购物车名称不能为空！");return ;
    }
    var cart=$.cookie(Cart.Name);
    if (cart !=null)return Json.toJson(cart);
    else return null;
}
//增加
Cart.Add= function(obj)
{
    obj=Json.Serialize(obj);
    var data=Cart.Data();
    if (data==null){
        Cart.Save(Json.toJson("["+obj+"]"));
        return true;
    }else{
        obj=Json.toJson(obj)
        if (!Cart.Contains(obj.id,obj.size,obj.type)){
            data.push(obj);
            Cart.Save(data);
            return true;
        }else
        {
            if(confirm("您已经购买了在该商品！\n\n进入购物车付款按“确定”，\n\n继续购买其它蛋糕按“取消”！"))location.href='cart.aspx';
        }
    }
    return false;
}
//修改
Cart.Modify= function(obj)
{
    if (obj==null) return false;
    var isok=false;
    obj=Json.Serialize(obj);
    var data=Cart.Data();
    if ( data!=null){
        obj=Json.toJson(obj)
        for(var i=0;i<data.length;i++)
        {
           if (data[i].id==obj.id&&data[i].size==obj.size&&data[i].type==obj.type)
           {
             data[i]=obj;
             isok=true;
           }
        }
    }
    Cart.Save(data);
    return isok;
}
//移除
Cart.Remove= function(id,size,type)
{
    var isok=false;
    var data=Cart.Data();
    if ( data!=null){
        if (data.length>1){
            for(var i=0;i<data.length;i++)
            {
           
                if (data[i].id==id&&data[i].size==size&&data[i].type==type)
                {
                    data.splice(i,1);
                    isok=true;
                }
            }
            Cart.Save(data);
        } else isok=Cart.Clear();
    }
    return isok;
}
//清空
Cart.Clear= function()
{
    $.cookie(Cart.Name,null,{expires: 1, path: "/", secure: false});
    return $.cookie(Cart.Name)==null;
}
//判断存在
Cart.Contains=function(id,size,type)
{
    var data=Cart.Data();
    if ( data!=null){
        for(var i=0;i<data.length;i++)
        {
           if (data[i].id==id&&data[i].size==size&&data[i].type==type)return true;
        }
        return false;
    }
}
Cart.Count=function()
{
    var data=Cart.Data();
    if (data!=null)return data.length;
    else return 0;
}
//产品详细
Cart.Info=function(id,size,type)
{
    var data=Cart.Data();
    if ( data!=null){
        for(var i=0;i<data.length;i++)
        {
           if (data[i].id==id&&data[i].size==size&data[i].type==type)return data[i];
        }
        return null;
    }
}
//计算总价
Cart.TotalPrice=function()
{
    var data=Cart.Data();
    var total=0.00;
    if (data !=null){
        for(var i=0;i<data.length;i++)
        {
           total += data[i].qua*data[i].price;
        }
    }
    return total;
}
//增加
Cart.Save= function(obj)
{
    if (obj !=null)$.cookie(Cart.Name,Json.toString(obj),{expires: 1, path: "/", secure: false});
}
var Utils = {};

//分页跳转
Utils.GoToPage=function(MaxPage,Url){ //为分页控件提供js方法
	if ($("#Page").val()!=="") {
		if ($("#Page").val().match(/[^0-9]/)) {
			Dialog.alert("页数必须是整数,请重新输入！"); 
			$("#Page").val("");
			$("#Page").focus();
			return  false; 
		}else{
			if ($("#Page").val()>MaxPage) {
				Dialog.alert("输入的页数不能大于总页数！"); 
				$("#Page").val("");
				$("#Page").focus();
			}else window.location = Url + $("#Page").val();
		}
	}
}
Utils.AddFav=function(title,url){
	if ((typeof window.sidebar == "object") && (typeof window.sidebar.addPanel == "function"))//Gecko
	{
		window.sidebar.addPanel(title,url,"");
	}
	else//IE
	{
		window.external.AddFavorite(url,title);
	}
}

Utils.checkMail=function(strValue) 
{ 
	var reg = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
	return reg.test(strValue);;
}

function sendmail(){
    
}
$(function(){
    $("#cartcount").html(Cart.Count());
    
    
    //地区设定
    var city=$.cookie("PloCity");
    if (city==null)$.cookie("PloCity","101",{expires: 1, path: "/", secure: false});
    
    $("#sharemail").bind("blur",function(){
        if($(this).val()=="")$(this).val("输入Email，订阅每日团购信息");
    }).bind("focus",function(){
        if($(this).val()=='输入Email，订阅每日团购信息')$(this).val("");
    })
    $("#sharesub").bind("click",function(){
        if(Utils.checkMail( $("#sharemail").val()))
        {
            alert("功能制作中。。。");
        }else alert("邮箱格式不正确！")
    })
})

