/*     
author: ferdinand pechmann

This script creates pagesnumbers with a color gradation between frist and last number.
It uses the aktiv document.

*/


/////////////////////////////////////////////////////////////////////////////////////////////////////////////
//format of the page number
//change this values to your needs

// fontsize in Pt
var  font_size= 160;              
// font of your fontcollection
var  font = "DIN Next LT Pro"  
var  font_weight ="Bold Condensed"

// distance from the side and bottom to the center the pagenumber
var distance_side    = 50;        
var distance_bottom= 30;   

// CMYK value of the first pagenumber
var C1 = 0;                     
var M1 = 80;
var Y1 = 100;
var K1 = 0;

// CMYK value of the last pagenumber
var C2 = 0;                        
var M2 = 80;
var Y2 = 100;
var K2 = 75;


////////////////////////////////////////////////////////////////////////////////////////////////////////////

//use aktive document and get the nesseary preferences
doc = app.activeDocument;

var facing_pages = doc.documentPreferences.facingPages;
var pages_per_doc = doc.pages.length;
var ph = doc.documentPreferences.pageHeight;
var pw = doc.documentPreferences.pageWidth;


//start CMYK value
var C= C1;
var M = M1;
var Y = Y1;
var K = K1;


//counter for left or right pages
var counter = 0;


// loop that creates the pagenumber for every page of the document with the specific CMYK value and the adjusted position 

for ( var  i = 0 ; i <  pages_per_doc ; i++ ){
 
 // CMYK values 
 var C = C + (( C2 - C1)  / pages_per_doc );
 var M = M + (( M2 - M1)  / pages_per_doc );
 var Y = Y +  (( Y2 - Y1)  / pages_per_doc );
 var K = K + (( K2 - K1)  / pages_per_doc );

// create the specific color
var colorname = "C" + C + " M" + M + " Y" + Y + " K" + K; 
var color_one = doc.colors.add();
    color_one.properties = {
    space:ColorSpace.CMYK,
    colorValue:[C,M,Y,K],
    name: (colorname)
    };


// counter for left or right page
counter = (counter + 1);                            
if ( counter > 3){
    counter = 2;
    };


// textframe position y for pagenumber
var y1= (( ph - distance_bottom) - 50);              
var y2 = (( ph - distance_bottom) + 50);

if ( facing_pages == false){                            
     // textframe position X for pagenumber  not facing pages
     var  x1= (distance_side - 50);
     var  x2 = (distance_side + 50);

}else if (counter == 1){                                   
     // textframe position X for pagenumber first page
     counter = (counter + 1); 
     var  x1= (pw - (distance_side - 50));
     var  x2 = ( pw - (distance_side + 50));
   
}else if (counter == 2){                                    
       // textframe position X for pagenumber right page
     var  x1= (( 2 * pw ) - (distance_side - 50));
     var  x2 = (( 2 * pw ) - (distance_side + 50));
    
 
}else{  
     // textframe position X for pagenumber left page
     var  x1= (distance_side - 50);
     var  x2 = (distance_side + 50);
    };
    

var aktpage = doc.pages[i];                                                

//create pagenumber
var pagenr =      aktpage.textFrames.add({
                       geometricBounds: [y1,x1,y2,x2],
                       contents: ""+(i+1),   
                       textFramePreferences:{verticalJustification: VerticalJustification.CENTER_ALIGN}
                       }); 
 
// get the paragraph
var pagenrparagraph = pagenr.paragraphs.anyItem(); 



// set  pointsize, font, color
pagenrparagraph.properties = {
                        pointSize: font_size,                                    
                        appliedFont: font + "\t" + font_weight,
                        justification : Justification.CENTER_ALIGN,
                        fillColor: doc.swatches.itemByName (colorname)                                            
                        };


};