$(function(){
	$.pp.init();
});

$.pp = {
/*
    表示までの待ち時間
*/
    waitTime:3000
/*
    表示するURLのリスト
*/
    ,targetURL:[
        "http://ad-web.jp/"
        ,"http://ad-web.jp/"
    ]
/*
    データの送信先URL
*/
    ,toURL: "http://ad-web.jp/form/form.cgi"
/*
    期限
*/
    ,_expire: new Date("2011/02/28 18:00:00")
    ,init: function(){
        $.pp.checkExpire();
        if($.pp.checkCookie() && $.pp.checkURL()){
             setTimeout($.pp.showForm,$.pp.waitTime);
        }
    }
    ,close: function(){
        $("#popup").remove();
        clearInterval(_intervalId);
        return false;
    }
    ,checkCookie: function(){        
       return $.cookie("submitted")===null;
    }
    ,checkURL: function(){
        var url = document.URL;
        var count = 0;
        for(var i=0;i<$.pp.targetURL.length;i++){
            if(url.indexOf($.pp.targetURL[i]) > -1){
                count++;
            }
        }
        return count>0;
    }
    ,checkExpire: function(){
        var now = new Date().getTime();
        var remain = Math.floor(($.pp._expire.getTime()-now)/1000);
        if(remain<0) {
            var days = Math.floor(Math.abs(remain)/86400)+1;
            var date = $.pp._expire.getDate();
            $.pp._expire.setDate(date+days);            
        }
    }
    ,showForm: function(){        
        var div = $("<div></div>").attr("id","popup").appendTo("body").css("display","none");
        div.load("popup.html",{},$.pp.onLoadComplete);
    }
    ,onLoadComplete: function(){
        //ループ設定
        _intervalId = setInterval($.pp.onInterval,1000);
        $.pp.setNumbers();
        $.pp.setDate();
        
        $("#popup").fadeIn(500);
        $("#btnclose a").click($.pp.close);
    }
    ,onInterval:function(){
        $.pp.setNumbers();
    }
    ,setDate: function(){
        //期限設定
        $("#emonth").html($.pp._expire.getMonth()+1);
        $("#eday").html($.pp._expire.getDate());
        $("#ehour").html($.pp._expire.getHours());
        //フォームの初期化
        $(":submit").click($.pp.onSubmit);        
    }
    ,setNumbers: function(){
        var now = new Date().getTime();
        var remain = Math.floor(($.pp._expire.getTime()-now)/1000);
        var second = remain%60;
        var minute = Math.floor(remain/60%60);
        var hour = Math.floor(remain/3600%24);
        //var day = Math.floor(remain/86400%30);

        $("#rhour").html($.pp._addZero(hour));
        $("#rminute").html($.pp._addZero(minute));
        $("#rsecond").html($.pp._addZero(second));
        
        if(remain<=0) {
            $.pp.close();
        }
    }
    ,onSubmit: function(){
        var errors = 0;
        //簡易バリデーション
        $(":text").each(
            function(){
                var self = $(this);
                var value = self.val();
                var name = self.attr("name");
                var parent = self.parent();
                parent.find(".error").remove();
                if(value==="") {
                    errors++;
                    $("<span></span>").addClass("error").html("必須項目です").appendTo($(this).parent());
                }else if(name==="mail" && !value.match(/^([a-z0-9_]|\-|\.|\+)+@(([a-z0-9_]|\-)+\.)+[a-z]{2,6}$/)){
                    errors++;
                    $("<span></span>").addClass("error").html("メールアドレスが不正です").appendTo($(this).parent());
                }
            }
        );
        if(errors===0){
            //送信処理
            var name = $("#popup form input[name=name]").val();
            var mail = $("#popup form input[name=mail]").val();
            $.pp.data = {"name":name,"mail":mail};
            $.post($.pp.toURL,{"name":name,"mail":mail},$.pp.thanks);
            $("#popup input").attr("disabled", "disabled").fadeTo("fast",0.6);
            $.cookie("submitted","true",{expires:3});
            
            $.pp.close();
        }
        return false;
    }
    ,thanks:function(data,status){
        $("#campain").html(data);
        $("#btnclose a").click($.pp.close);
    }
    ,data:{}
    ,_addZero: function(n){
        if(n<10) {
            n = "0"+n;
        }
        return n;
    }
    ,_intervalId:0
};
