/*
This code is written by Perlover

Copyright (c) by Perlover, 2010 year
*/
$(function(){String.prototype.escapeHTML=function(){return(this.replace(/&/g,"&amp;").replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/"/g,"&quot;"))};var e="http://xml.seekandsee.com/json/Trades/?cmd=getcjtree&callback=?";var b=$("#niches");var a,f,h,d,c;var g=["child","underage","illegal","preteen","preteens","child","pedo","kid","incest","rape","animal","dog","horse","force","thirteen","fourteen","sixteen","young","little","fifteen","family","sister","brother","daughter","daddy","seventeen","loli","lolli","chaildren"];checkTitleLegal.bannedMask=[];$.each(g,function(){checkTitleLegal.bannedMask.push("\\b"+arguments[1])});checkTitleLegal.bannedMask=checkTitleLegal.bannedMask.join("|");checkTitleLegal.bannedMask+="|\\bcp\\b|\\bdad\\b|\\bson\\b|pedo|(1[0-7]|\\b[1-9])\\s*(y|old|age)|1\\dyr|^\\dyr|\\bzoo|very young|(little|youngest) (girls?|boys?)|age\\s*1[0-7]|under (age|1[0-7])";$.getJSON(e,{cmd:"getcjtree"},function(o){for(var m=0;m<o.length;m++){f=$("<ul/>").appendTo(a=$('<li><span class="niche">'+o[m].niche.escapeHTML()+"</span></li>").appendTo(b));c=[];for(var l=0;l<o[m].types.length;l++){h=$("<ul/>").appendTo($('<li><span class="cjtype">'+(d=o[m].types[l]).type+"</span></li>").appendTo(f));for(var n=0;n<d.sites.length;n++){_site=d.sites[n];$('<li><a class="site" href="'+_site.url+'" target="_blank">'+_site.title.escapeHTML()+"</a></li>").appendTo(h)}var k=o[m].niche.escapeHTML()+" "+(d.type=="TGP"?"Pictures":"Movies (NO TUBEs and NO FLVs!)");h.append('<div style="width: 740px"><div style="width: 740px"><a href="javascript:void(0)" onclick="$(this).parent().toggle(\'slow\').next().toggle(\'slow\'); return false">Add here your <b>'+k+'</b> sites</a></div><div style="width: 740px; display: none">Please add your <b>'+k+'</b> URL(s) for trades here - one URL per line.<br/>Later you will be able to choose my sites for trades<br/><textarea name="yourSites" cols="40" rows="3"/><br/>[ <a href="javascript:void(0)" style="color: green" onclick="var val = $(this).prevAll(\'textarea\').eq(0).val(); $(this).parent().toggle(\'slow\').next().children(\'textarea\').val(val).end().toggle(\'slow\'); showContactForm(); return false">OK</a> ]&nbsp;&nbsp;&nbsp;[ <a href="javascript:void(0)" style="color: red" onclick="$(this).parent().toggle(\'slow\').prev().toggle(\'slow\'); return false">Cancel</a> ]</div><div style="width: 740px; display: none" tradeurls="yes">Your sites for trades (should be <b>'+k+'</b> Sites)<br/>You can add other your URLs in other niches right now<br/>or go to "Step 3"<br/><textarea name="yourSites" cols="40" rows="3" readonly="yes"/><br/>[ <a href="javascript:void(0)" target="_self" onclick="$(this).parent().toggle(\'slow\').prev().toggle(\'slow\'); return false" style="color: green">Edit</a> ]</div></div>');if(d.sites.length){c.push(d.sites.length+" "+(d.type=="TGP"?"pics":"movies"))}}$("<span> ("+c.join(", ")+" "+(c.length>1?"sites":"site")+")</span>").insertAfter($("span.niche",a))}b.treeview({collapsed:true,animated:"medium",control:"#sidetreecontrol",persist:"location"})})});function showContactForm(){$("#no_contact_fields").toggle(false);$("#contact_fields").toggle(true);$("#trades_form").validate({errorPlacement:function(a,b){if(b.attr("name").indexOf("sitename")==0){b.after(a).after("<br>");a.css("marginLeft","0px")}else{a.insertAfter(b)}},submitHandler:formHandler,rules:{icq:{range:[10000,9999999999],required:function(){return $("#email").val()==""}},nick:{nick:true,required:true},email:{email:true,required:function(){return $("#icq").val()==""}}},messages:{icq:{range:"Please enter a valid ICQ number.",required:"Please enter ICQ or/and email"},email:{required:"Please enter ICQ or/and email"}}});$.validator.addMethod("sitename",checkTitle,"Each word should start from Capital Letter!<br>No only capital letters!");$.validator.addMethod("sitenameLegal",checkTitleLegal,"Your title consists illegal word(s)!");$.validator.addMethod("nick",checkNick,"Your nickname consists only digits - not allowed!");$("#icq, #email").keyup(function(){$("#icq, #email").valid()})}function checkNick(b,a){var c=$.trim($(a).val());return !(/^\d+$/).test(c)}function checkTitle(b,a){var c=$.trim($(a).val());if(c.toLowerCase()==c||c.toUpperCase()==c||c==""){return false}return !(/(?:[^\']|^)(\b[a-z])/.test(c)||/\b[A-Z]{2,}\b/.test(c))}function checkTitleLegal(value,el){var text=$.trim($(el).val());return !eval("/"+checkTitleLegal.bannedMask+"/i.test(text)")}function formHandler(){if($("#trade_list:hidden").length==1){showTradeTable()}else{$.each(tradeInfo,function(b,a){var c;a.args.sitename=(c=$("#sitename"+a.k)).val();c.get(0).disabled=true});checkOrAddTrade(true);$("#iEditedTitles").get(0).disabled=true;$("#9ECb79sC").css({color:"red",fontWeight:"bold"});$("#CutAmBj5").css("opacity",0.3)}}var tradeInfo=[];var siteList;var contactData;function showTradeTable(){var a=getSiteList();var b=$("#trade_list > tr:first");var c,d;jQuery.each(a,function(f,e){var g='<tr align="left" class="table_site_name"><td width="25%" class="table_site_name"><a href="'+e.url.escapeHTML()+'">'+e.domain+'</a></td><td width="35%" align="center" valign="top" class="table_site_name"><input style="width: 180px" type="text" tabindex="99" id="sitename'+f+'" name="sitename'+f+'" class="form_text" value="'+e.domain.replace(/(\.com)/,"").escapeHTML()+'" maxlength="50"></td><td width="40%" class="no_indent">';if(e.mySites.length>0){g+='<table width="100%" border="0" cellspacing="0" cellpadding="2" class="table_site_name no_indent" cj="trades">';jQuery.each(e.mySites,function(i,h){c="status-"+(d=f+"-"+i);d="cb-"+d;g+='<tr><td width="50%"><input id="'+d+'" type="checkbox" name="'+d+'" value="1"><a href="'+h.url+'">'+h.domain+'</a></td><td width="50%" cj="status"><span id="'+c+'" style="cursor: pointer">Wait...</span></td></tr><tr>';tradeInfo.push({jsonCheck:h.url+"submit/json/addtrade.cgi?onlycheck=1&callback=?",jsonAdd:h.url+"submit/json/addtrade.cgi?callback=?",k:f,args:{url:e.url,sitename:e.domain},status:c,checkbox:d,trade:e,mysite:h})});g+="</table>"}else{g+="&nbsp;"}g+="</td></tr>";b.after(g=$(g));b=g});$("#no_trade_list").toggle(false);$("input[name^=sitename]",$("#trade_list").toggle(true)).each(function(){$(this).rules("add",{sitename:true,sitenameLegal:true,required:true})});jQuery.each($('#niches a:contains("Edit")').get(),function(){arguments[1].setAttribute("onclick",null)});contactData=$("#contact_fields input").serialize();$("#contact_fields input").attr("disabled",true);checkOrAddTrade(false)}function checkTitlesAndSubmit(){$("#no_adding_trades").toggle(false);$("#adding_trades").toggle(true);$.each(siteList,function(c,b){if($("input[id^=cb-"+c+"-]:enabled").length==0){$("#sitename"+c).get(0).disabled=true}});var a=$("input[name*=sitename]:enabled");if(a.length>0){a.valid()}}var byDomains;function generateInstructions(){$("#no_finish").toggle(false);$("#finish").toggle(true);remakeInstructions()}function remakeInstructions(){$("textarea[name=instructions]").val(getInstructionText($("#lineFormat").val()),$("#xmlEscaping:checked").length)}function getInstructionText(b,a){var c="";if(b===undefined||b==""){b="{url} - {title}"}if(byDomains===undefined){byDomains={};$.each(tradeInfo,function(e,d){if(d.added===true){if(byDomains[d.trade.domain]===undefined){byDomains[d.trade.domain]=[]}byDomains[d.trade.domain].push(d)}})}$.each(siteList,function(e,d){if($.isArray(byDomains[d.domain])){c+=(c==""?"":"\n")+"Please add my site(s) to your "+d.domain+":\n";$.each(byDomains[d.domain],function(h,g){var f=b.replace(/\{url\}/g,g.mysite.url);f=f.replace(/\{title\}/g,g.mysite.title);if(a){f=f.replace(/&/g,"&amp;").replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")}c+=f+"\n"})}});return c}function checkOrAddTrade(c){var b={1:["Bad URL","Please check up your URL"],2:["Bad domain","Your site's domain is incorrect - there IP address, not domain"],3:["Bad domain","Your domain should be second level domain. A third level domains are not allowed"],4:["Bad domain","Your domain consists incorrect characters!"],5:["Trade exists",function(d){if(d&1&&(d&128)==0){return"Trade is not approved but you can send traffic (my script will return back)"}else{if(d&1&&(d&128)){return"Trade is not approved and turned off and to be waiting of approving"}else{if(d&128){return"Trade is turned off. You will not get traffic back still i will not turn on it"}else{if((d&128)==0&&(d&4194304)==0){return"Trade is going! All fine!"}else{if((d&128)==0&&d&4194304){return"Trade is turned on but it's dead. I can delete it any time! Please start sending traffic right now!"}else{return"Trade is there but him status is unknown"}}}}}}],6:["Excluded here",$.validator.format("Your site in local excluded list (local ban). Reason: {0}")],7:["Global banned",$.validator.format("Your site in my global banlist! Reason: {0}")],8:["Unknown error","Unknown error. It's error of my software. Please try again or will write me"],9:["Traffic limit","Your site cannot be added - you have not enough site's traffic"],99:["Forms are closed","My forms are closed. Please try later! :-)"],98:["Limit new trades","My forms are opened but the amount of new trades has been reached limit. Please try later! ;-)"],100:["Other error",$.validator.format("Error(s): {0}")]};if(tradeInfo.length){function a(f){if(f>=tradeInfo.length){(c?generateInstructions:checkTitlesAndSubmit)();return}var e=tradeInfo[f];var d={showTip:function(i){var g=$(".bt-content",i).hide();var h=$("canvas",i).hide();var k=h[0].width;var j=h[0].height;$(i).show();h.css({width:k*0.5,height:j*0.5,left:k*0.25,top:j*0.25,opacity:0.1}).show().animate({width:k,height:j,left:0,top:0,opacity:1},400,"easeOutBounce",function(){g.show()})},hideTip:function(i,l){var g=$(".bt-content",i).hide();var h=$("canvas",i);var k=h[0].width;var j=h[0].height;h.animate({width:k*0.5,height:j*0.5,left:k*0.25,top:j*0.25,opacity:0},400,"swing",l)},shrinkToFit:true,hoverIntentOpts:{interval:0,timeout:0},closeWhenOthersOpen:true,trigger:["click.bt"]};if(!c||$("#"+e.checkbox+":checked").length){$.getJSON(e[c?"jsonAdd":"jsonCheck"]+"&"+contactData+"&"+jQuery.param(e.args),function(i){if(e.jsTimeoutWas){return}window.clearTimeout(e.jsTimeout);if(i.result=="OK"&&c){e.added=true}var h=i.result=="OK"?0:(i.extError?(typeof i.extError==="object"?i.extError[0]:i.extError):100);var g=$("#"+e.status).text(h?b[h][0]:c?"Added":"Can be added").data("canAdded",!c&&!h).attr("bt-xtitle",h?(typeof b[h][1]==="string"?b[h][1]:b[h][1](typeof i.extError==="object"?i.extError[1]:($.isArray(i.errors)?i.errors.join("; "):""))):c?"Your trade is added! :)":"You can add the trade here! :)").unbind(".bt").bt(d).css("color",h?"red":"green");if(h==0){$("#"+e.checkbox).attr(c?"disabled":"checked",true)}else{$("#"+e.checkbox).get(0).disabled=true}a(f+1)});e.jsTimeout=window.setTimeout(function(){$("#"+e.status).text("Error, click here").attr("bt-xtitle","Your JavaScript is allowed partly. If you have NoScript Addon, please to make &quot;Allow Scripts Globally&quot; and reload this page!").unbind(".bt").bt(d).css("color","red");$("#"+e.checkbox).get(0).disabled=true;e.jsTimeoutWas=true;a(f+1)},4000)}else{if(c&&$("#"+e.status).data("canAdded")===true){$("#"+e.status).text("Skipped").attr("bt-xtitle","You skipped this trade :(").unbind(".bt").bt(d).css("color","red")}$("#"+e.checkbox).get(0).disabled=true;a(f+1)}}a(0)}}function getSiteList(){siteList=[];$("div[tradeurls]:visible > textarea").each(function(){var a=$("span.niche, span.cjtype",$(this).parents("li"));var b=[];$("li > a",$(this).parents("ul").eq(0)).each(function(){var d=$(this);var c;b.push(c={url:d.attr("href"),title:d.text(),domain:getDomain(d.attr("href"))});return true});jQuery.each($(this).val().split(/\r?\n/),function(d,c){var f;if(c!=null&&c!=""&&(f=getDomain(c))){var e={domain:f,url:c,niche:a.eq(1).text(),cjtype:a.eq(0).text(),mySites:b};siteList.push(e)}});return true});return siteList}function getDomain(a){var b=a.toLowerCase().match(/^http:\/\/([a-z0-9\.\-]+)(?:\/|$)/);if(!b||!b[1]||b[1]==""){return null}return b[1].replace(/www\./,"")};