var remember = {
    token : '',
    name : '',
    id : 0,
    status : 0,
    did : 0,
    step : 0,
    estep : 0,
    refresh : 0,
    perms : '',
    interf : '',
    verified : 0,
    linkdata : {}
};


var directory = {};
directory.register = function(step) {
    remember.interf = '';
    if(step<3){
        var r=getfbstatus();
        if(r==1){step=3;}
    }
    this.slide(step);
    $.fancybox({
        type : 'inline'
        ,href : '#register-contain'
        ,titleShow : false
        ,margin : 0
        ,padding : 0
        ,showNavArrows : false
        ,onClosed : function() {
            if(remember.refresh)window.location.reload();
            }
    });
}

directory.slide = function(step) {
    remember.step = step;
    if((step==6)||(step==4)){$('#register-contain').css('height','375px');}
    if(((step!=6)&&(step!=4)) &&($('#register-contain').css('height')=='375px')){$('#register-contain').css('height','256px');}
    $('.inner-register').animate({'left':step*-651+'px'});
    if(step==4) $('#special_submit').val(remember.url);
}


$('a.sllink').live('click',function(event) {
    directory.register(2);
    event.preventDefault();
    
});

   
$('a.sllink1').live('click',function(event) {
    directory.slide(1);
    event.preventDefault();
});

$('a.sllink2').live('click',function(event) {
    directory.slide(2);
    event.preventDefault();
});

$('a.sllink3').live('click',function(event) {
    directory.slide(3);
    event.preventDefault();
});

$('a.sllink4').live('click',function(event) {
    directory.slide(4);
    event.preventDefault();
});

$('a.fblogin').live('click',function(event) {
    fblogin();
    event.preventDefault();
});


$('#url-submit').live('click',function(event) {
    submiturl();
    event.preventDefault();
});

$('#url-submit-extra').live('click',function(event) {
    submitextra();
    event.preventDefault();
});

$('#logout-link').live('click',function(event) {
    fblogout();
    remember.refresh = 1;
    event.preventDefault();
});

function getfbstatus(){
    var r=0;
    if(remember.token) return 1;
FB.getLoginStatus(function(response) {
if(response){
  if (response.status=='connected') {
  r=1;
   if (response.authResponse) {
        remember.token=response.authResponse.accessToken;
        remember.id=response.authResponse.userID;
    }
  }
  else{r=0;}
}
});
    return r;
}
   
 function submiturl(){
        remember.url = $("#URL").val();
        remember.allow = $("#allow").val();
        var err;
        if((remember.url=='')||(remember.url=='http://www.YourSite/')){
            $('span.slerrors').html('URL is invalid or missing!');
            return false;
        }
        
        if((remember.url.indexOf('http://')!=0) && (remember.url.indexOf('http://')!=0)) remember.url='http://'+remember.url;
        var pattern = /^(http|https)\:\/\/[a-zA-Z\-\d\.]+\.[a-zA-Z][a-zA-Z]+(\/|$|\?)/; 
        if(remember.url.search(pattern)==-1){
            $('span.slerrors').html('invalid URL!');
            return false;          
        }
        var result=0;
        
        getfbstatus();
        
        if(remember.token){
         $.ajax({
            url : '/fbsubmit.php'
            ,dataType : 'json'
            ,data : {
                access_token : remember.token,
                url : remember.url,
                allow : remember.allow
                }
            ,success : function(response) {
                if (response) {
                    if(response.result==1){
                            directory.slide(6);
                            result=1;
                    }
                }
            }
                        ,async : false
                    });
        }
        //false positive!
        if(!result) directory.slide(4);
        return false;
    }
    
    function submitextra(){
        var company = $("#company").val();
        var description = $("#description").val();
        var tags = $("#tags").val();
        var err;
        $('#err_company').html('');
        $('#err_description').html('');
        $('#err_tags').html('');
        
        if(!remember.url){
            //false positive
            return true;
        }
        if((company.length < 2)||(company=='Company or Website Name')){
            $('#err_company').html('Missing or too short!');
            return false;
        }
        else if(company.length > 60){
            $('#err_company').html('Too long!');
            return false;
        }
        var regex='Give us a brief description of your website';
        if((description.length < 10)||(description.search(regex)!=-1)){
            $('#err_description').html('Missing or too short!');
            return false;
        }
        else if(description.length > 500){
            $('#err_description').html('Too long! [maximum 500 characters]');
            return false;
        }
        if(tags=='Keywords: (website, topic, etc.)'){
            $('#err_tags').html('Invalid keywords');
            return false;
        }
        else if(tags.length > 100){
            $('#err_tags').html('Total keywords length is too long!');
            return false;
        }
        var result=0;
        
        
        if(remember.token){
         $.ajax({
            url : '/fbextrasubmit.php'
            ,dataType : 'json'
            ,data : {
                access_token : remember.token,
                company : company,
                description : description,
                tags : tags,
                url : remember.url
                }
            ,success : function(response) {
                if (response) {
                    if(response.result==1){
                            directory.slide(4);
                            result=1;
                            return false;
                    }
              
                }
                return true;
            }
                        ,async : false
                    });
        }
        //false positive!
        if(!result) directory.slide(4);
    return false;
    }
    
    
    function getfbid(){
    if(remember.id) return remember.id;
    getfbstatus();
    return remember.id;
}

function fblogout(){
    FB.logout(function(response) {
        window.location.reload();
  // user is now logged out
});
}

function getfbname(){
    if(remember.name) return remember.name;

    var id=getfbid();
    if(!id) return 0;
        $.ajax({
            url : 'https://graph.facebook.com/'+id
            ,dataType : 'json'
            ,success : function(response) {
                if (response) {
                    if(response.name) remember.name=response.name;
                }
            }
            ,async : false
            });
    return remember.name;
}

function updateMembers(){
 $.ajax({
                        url : '/members.php'
                        ,dataType : 'json'
                        ,data : {
                            access_token : remember.token,
                            user_id : remember.id
                        }
                        ,async : false
                    });
}

var editor = {};
editor.launch = function(step) {
    remember.interf = 'editor';
    this.slide(step);
    $.fancybox({
        type : 'inline'
        ,href : '#slideredit-contain'
        ,titleShow : false
        ,margin : 0
        ,padding : 0
        ,showNavArrows : false
        ,onClosed : function() {
            if(remember.refresh) window.location.reload();
            }
    });
}

editor.slide = function(step) {
    remember.estep = step;
    if(step==2){
        $.ajax({
                        url : '/editor.php'
                        ,dataType : 'json'
                        ,data : {
                            appid : '',
                            user_id : remember.id,
			    mode : 'verify',
                            url : remember.url,
			    link_id : remember.link_id,
			    db : remember.db		    
                        }
			,error : function(response) {
			  $.fancybox.close();
				return;
			}
                        ,success : function(response) {

                            if (response && response.filename) {
                                remember.date = response.date;
                                $('#filename').html(response.filename);
                                $('#fileurl').html(response.fileurl);
                                $('#metatag').html('&lt;meta name="ientry_id" content="'+response.metatag+'"&gt;');
                                $('#postcode').html(response.metatag);
                            }

                        }
                        
                        ,async : false
                    });
        $('#slideredit-contain').css('height','420px');
    }
    else if((step==3)){
        if(!remember.email && !remember.verified){
            $.fancybox.close();
	    return; 
        }
        if(!remember.did){
        $.ajax({
                        url : '/editor.php'
                        ,dataType : 'json'
                        ,data : {
                            appid : '',
                            user_id : remember.id,
			    mode : 'get',
                            url : remember.url,
			    link_id : remember.link_id,
			    db : remember.db		    
                        }
			,error : function(response) {
			  $.fancybox.close();
				return;
			}
                        ,success : function(response) {

                            if(response.result==1) {
                                $('#websiteurl').html('http://'+remember.url);
                                if(remember.did<3){
                                $('#TITLE').val(response.TITLE);
                                $('#DESCRIPTION').val(response.DESCRIPTION);
                                $('#TAGS').val(response.TAGS);
                                remember.DESCRIPTION=response.DESCRIPTION;
                                remember.TAGS=response.TAGS;
                                remember.TITLE=response.TITLE;
                                remember.BUSINESS_NAME=response.BUSINESS_NAME;
                                remember.XDESCRIPTION=response.XDESCRIPTION;
                                remember.ADDRESS=response.ADDRESS;
                                remember.PHONE=response.PHONE;
                                remember.COUNTRY=response.COUNTRY;
                                remember.COUNTRY_TEXT=response.COUNTRY_TEXT;
                                remember.STATE=response.STATE;
                                remember.STATE_TEXT=response.STATE_TEXT;
                                remember.INDUSTRY=response.INDUSTRY;
                                remember.INDUSTRY_TEXT=response.INDUSTRY_TEXT;
                                remember.ZIP=response.ZIP;
                                remember.FACEBOOK=response.FACEBOOK;
                                remember.TWELLOW=response.TWELLOW;
                                remember.GPLUS=response.GPLUS;
                                remember.YOUTUBE=response.YOUTUBE;
                                remember.TWITTER=response.TWITTER;
                                remember.GMAP=response.GMAP;
                                remember.LOGO=response.LOGO;
                                remember.did=3;
                                }
                                return;
                            }
                            else{
                                $.fancybox.close();
				return;
                            }

                        }
                        
                        ,async : false
                    });
        }
        $('#slideredit-contain').css('height','415px');
    }
    else if(step==4){
        $('#errmess3').html('');
        var strg=$('#TITLE').val();
        if(strg.length>60){
            $('#errmess3').html('Website/company name is too long! [max: 60 characters]');
        }
        else if(strg.length<2) $('#errmess3').html('Company/site name is too short or empty! [min: 2 characters]');

        if(!$('#errmess3').html()){
            strg=$('#DESCRIPTION').val();
            if(strg.length>2000) $('#errmess3').html('Site description is too long! [max: 2000 characters]');
            else if(strg.length<20) $('#errmess3').html('Site description is too short or empty! [min: 20 characters]');
        }
        if(!$('#errmess3').html()){
            var pattern=/\b/;
            var pattern2=/,/;
            strg=$('#TAGS').val();
            if(strg.length>500) $('#errmess3').html('Too much tag text ! [max: 500 characters]');
            else if((strg.search(pattern)!=-1)&&(strg.search(pattern2)==-1)) $('#errmess3').html('Please use commas (,) to separate keywords');
        }
        
        if(!$('#errmess3').html()){
            strg=$('#LOGO').val();
            if(strg.length>255) $('#errmess3').html('Logo URL is too long! [max: 255 characters]');
        }
        
        if($('#errmess3').html()) return;      

        if(remember.did<4){
        if(!$('#BUSINESS_NAME').val()) $('#BUSINESS_NAME').val(remember.BUSINESS_NAME);
        if(!$('#XDESCRIPTION').val()) $('#XDESCRIPTION').val(remember.XDESCRIPTION);
        if(!$('#ADDRESS').val()) $('#ADDRESS').val(remember.ADDRESS);
        if(!$('#PHONE').val()) $('#PHONE').val(remember.PHONE);
        if(!$('#ZIP').val()) $('#ZIP').val(remember.ZIP);
        if(!$('#LOGO').val()) $('#LOGO').val(remember.LOGO);
        if(remember.COUNTRY){
            $('#COUNTRY').append('<option value="'+remember.COUNTRY+'" selected>'+remember.COUNTRY_TEXT+'</option>');
        }
        if(remember.STATE){
            $('#STATE').append('<option value="'+remember.STATE+'" selected>'+remember.STATE_TEXT+'</option>');
        }
        if(remember.INDUSTRY){
            $('#INDUSTRY').append('<option value="'+remember.INDUSTRY+'" selected>'+remember.INDUSTRY_TEXT+'</option>');
        }
        remember.did=4;
        }
        $('#slideredit-contain').css('height','480px');
    }
    else if(step==5){
        $('#errmess4').html('');
        var strg=$('#BUSINESS_NAME').val();
        if(strg.length>255){
            $('#errmess4').html('Business name is too long! [max: 255 characters]');
        }
        if(!$('#errmess4').html()){
            strg=$('#XDESCRIPTION').val();
            if(strg.length>2000) $('#errmess4').html('Business description is too long! [max: 2000 characters]');
        }
        if(!$('#errmess4').html()){
            strg=$('#ADDRESS').val();
            if(strg.length>255) $('#errmess4').html('Business address is too long! [max: 255 characters]');
        }
        if(!$('#errmess4').html()){
            strg=$('#PHONE').val();
            if(strg.length>100) $('#errmess4').html('Phone number is too long! [max: 100 characters]');
        }
        if(!$('#errmess4').html()){
            strg=$('#ZIP').val();
            if(strg.length>20) $('#errmess4').html('Zip/postal code is too long! [max: 20 characters]');
        }
        if($('#errmess4').html()) return;    

        if(remember.did<5){
        if(!$('#FACEBOOK').val()) $('#FACEBOOK').val(remember.FACEBOOK);
        if(!$('#TWELLOW').val()) $('#TWELLOW').val(remember.TWELLOW);
        if(!$('#GPLUS').val()) $('#GPLUS').val(remember.GPLUS);
        if(!$('#YOUTUBE').val()) $('#YOUTUBE').val(remember.YOUTUBE);
        if(!$('#TWITTER').val()) $('#TWITTER').val(remember.TWITTER);
        if(!$('#GMAP').val()) $('#GMAP').val(remember.GMAP);
        remember.did=5;
        }
        $('#slideredit-contain').css('height','385px');
    }
    else if(step>5){
        $('#errmess5').html('');
        var strg=$('#FACEBOOK').val();
        if(strg.length>255){
            $('#errmess5').html('Facebook URL is too long! [max: 255 characters]');
        }
        if(!$('#errmess5').html()){
            strg=$('#TWELLOW').val();
            if(strg.length>255) $('#errmess5').html('Twellow URL is too long! [max: 255 characters]');
        }
        if(!$('#errmess5').html()){
            strg=$('#GPLUS').val();
            if(strg.length>255) $('#errmess5').html('Google Plus URL is too long! [max: 255 characters]');
        }
        if(!$('#errmess5').html()){
            strg=$('#YOUTUBE').val();
            if(strg.length>255) $('#errmess5').html('Youtube URL is too long! [max: 255 characters]');
        }
        if(!$('#errmess5').html()){
            strg=$('#TWITTER').val();
            if(strg.length>255) $('#errmess5').html('Twitter URL is too long! [max: 255 characters]');
        }
        if(!$('#errmess5').html()){
            strg=$('#GMAP').val();
            if(strg.length>255) $('#errmess5').html('Gmap URL is too long! [max: 255 characters]');
        }
        if($('#errmess5').html()) return;      
    }
    if(((step!=3)&&(step!=4)&&(step!=5)&&(step!=2)) &&($('#slideredit-contain').css('height')!='256px')){$('#slideredit-contain').css('height','256px');}
    $('.slideredit-inner-register').animate({'left':step*-651+'px'});
}

$('a.edlink').live('click',function(event) {
    remember.url=$(event.target).attr('url');
    $('#slideredit-submitted-url').html(remember.url);
    remember.db=$(event.target).attr('db');
    remember.link_id=$(event.target).attr('link_id');
    var step = 0;
    var r=getfbstatus();
    if(r==1){step=2;}
    editor.launch(step);
    event.preventDefault();  
});


$('a.edlink1').live('click',function(event) {
    editor.launch(1);
    event.preventDefault();  
});

$('a.edlink2').live('click',function(event) {
    editor.launch(2);
    event.preventDefault();  
});

$('a.edlink3').live('click',function(event) {
    if(!remember.approved) $.fancybox.close();
    else{
    editor.launch(3);
    event.preventDefault();
    }
});

$('a.edlink4').live('click',function(event) {
   if(!remember.approved) $.fancybox.close();
    else{
    editor.launch(4);
    event.preventDefault();
    }
});

$('a.edlink5').live('click',function(event) {
   if(!remember.approved) $.fancybox.close();
    else{
    editor.launch(5);
    event.preventDefault();
    }
});

$('a.edlink6').live('click',function(event) {
    editor.launch(6);
    event.preventDefault();  
});

$('a.edlink7').live('click',function(event) {
    editor.launch(7);
    event.preventDefault();  
});

editor.check = function() {
        $.ajax({
                        url : '/editor.php'
                        ,dataType : 'json'
                        ,data : {
                            appid : '',
                            user_id : remember.id,
			    mode : 'check',
                            url : remember.url,
                            post : $("#posturl").val(),
			    link_id : remember.link_id,
			    db : remember.db,
                            date : remember.date
                        }
			,error : function(response) {
                            $('#errmess2').html('something went wrong, try again**');
			    return;
			}
                        ,success : function(response) {

                            if (response.result==1) {
                                remember.verified = 1;
                                editor.slide(3);       
                                return;
                            }
                            else{
                                $('#errmess2').html('could not find fil, meta tag, or code in post on your site');
                                return;
                            }

                        }
                        
                        ,async : false
                    });
    }
    
    editor.email = function() {
        remember.email = $('input.slideredit_new_email').val();
        remember.email  = remember.email.toLowerCase();
        var pattern = /^[a-z\d\-\+_\.]+@[a-z\d\-\.]+\.[a-z][a-z]+$/;
        var pattern2 = /(spam|trap|trash|garbage|honeypot)/;
        if((remember.email.search(pattern)==-1)||(remember.email.search(pattern2)!=-1)||(remember.email=='email-address@website.com')){
            $('#errmess').html('That\'s an invalid email');
            return false;          
        }      
    editor.slide(2);       
                           
    }
    
    
       editor.final = function() {
        $.ajax({
                        url : '/editor.php'
                        ,dataType : 'json'
                        ,data : {
                            appid : '',
			    mode : 'final',
                            email : remember.email,
                            url : remember.url,
                            link_id : remember.link_id,
			    db : remember.db,
                            facebook : remember.facebook,
                            DESCRIPTION : $('#DESCRIPTION').val(),
                            TAGS : $('#TAGS').val(),
                            TITLE : $('#TITLE').val(),
                            BUSINESS_NAME : $('#BUSINESS_NAME').val(),
                            XDESCRIPTION : $('#XDESCRIPTION').val(),
                            ADDRESS : $('#ADDRESS').val(),
                            PHONE : $('#PHONE').val(),
                            COUNTRY : $('#COUNTRY').val(),
                            STATE : $('#STATE').val(),
                            INDUSTRY : $('#INDUSTRY').val(),
                            ZIP : $('#ZIP').val(),
                            FACEBOOK : $('#FACEBOOK').val(),
                            TWELLOW : $('#TWELLOW').val(),
                            GPLUS : $('#GPLUS').val(),
                            YOUTUBE : $('#YOUTUBE').val(),
                            TWITTER : $('#TWITTER').val(),
                            GMAP : $('#GMAP').val()                           
                        }
			,error : function(response) {
                            $('#errmess3').html('something went wrong, try again*');
                            editor.slide(1);
			    return;
			}
                        ,success : function(response) {

                            if (response.result==1) {
                                if(remember.facebook) editor.slide(7);
                                else{editor.slide(6);}
                                return;
                            }
                            else{
                                if(response.slide==3){
                                    $('#errmess3').html(response.error);
                                    editor.slide(3);       
                                    return;
                                }
                                if(response.slide==4){
                                    $('#errmess4').html(response.error);
                                    editor.slide(4);       
                                    return;
                                }
                                if(response.slide==5){
                                    $('#errmess5').html(response.error);
                                    editor.slide(5);       
                                    return;
                                }
                                
                            }

                        }
                        
                        ,async : false
                    });
    }

